C# でローカル IP の収集と並べ替えを取得する 7 つのメソッドのサンプル コード共有
C#ローカルIPの収集とソートを取得する7つのメソッドのサンプルコード共有
①
1 private void GetIP() 2 { 3 string hostName = Dns.GetHostName();//本机名 4 //System.Net.IPAddress[] addressList = Dns.GetHostByName(hostName).AddressList;//会警告GetHostByName()已过期,我运行时且只返回了一个IPv4的地址 5 System.Net.IPAddress[] addressList = Dns.GetHostAddresses(hostName);//会返回所有地址,包括IPv4和IPv6 6 foreach (IPAddress ip in addressList) 7 { 8 listBox1.Items.Add(ip.ToString()); 9 } 10 }
1 static string GetLocalIp() 2 { 3 string hostname = Dns.GetHostName();//得到本机名 4 //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址 5 <SPAN style="WHITE-SPACE: pre"> </SPAN> IPHostEntry localhost = Dns.GetHostEntry(hostname); 6 IPAddress localaddr = localhost.AddressList[0]; 7 return localaddr.ToString(); 8 }
メソッド送信IPクエリを提供するいくつかのWebサイトにwebリクエストを送信し、返されたデータフローを分析します
1 string strUrl = "提供IP查询的网站的链接"; 2 Uri uri = new Uri(strUrl); 3 WebRequest webreq = WebRequest.Create(uri); 4 Stream s = webreq .GetResponse().GetResponseStream(); 5 StreamReader sr = new StreamReader(s, Encoding.Default); 6 string all = sr.ReadToEnd(); 7 int i = all.IndexOf("[") + 1; 8 //分析字符串得到IP 9 return ip; 10 /* 11 我用的是http://www.php.cn/ 12 (这种链接很容易找的,百度“IP”得到一些网站,分析一下网站的链接就能得到) 13 返回的数据是: 14 <p class="well"><p>当前 IP:<code>0.0.0.0</code> 来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></p> 15 解析这段就行 16 */
1 private void GetIP2() 2 { 3 string stringMAC = ""; 4 string stringIP = ""; 5 ManagementClass managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration"); 6 ManagementObjectCollection managementObjectCollection = managementClass.GetInstances(); 7 foreach(ManagementObject managementObject in managementObjectCollection) 8 { 9 if ((bool)managementObject["IPEnabled"] == true) 10 { 11 stringMAC += managementObject["MACAddress"].ToString(); 12 string[] IPAddresses = (string[])managementObject["IPAddress"]; 13 if (IPAddresses.Length > 0) 14 { 15 stringIP = IPAddresses[0]; 16 } 17 } 18 } 19 txtMAC.Text = stringMAC.ToString(); 20 txtIP.Text = stringIP.ToString(); 21 }
⑤ Web サイトが提供する Web サービスを呼び出して IP アドレスを問い合わせる
かなり時間がかかりましたが、Web サービスの呼び出し方法を学習していなかったので、見つかったページどおりに動作しなかったので、最初はあきらめました...結局のところ、WebServiceを取得するのは簡単です(将来の改善のために残しておきます)。
⑥CMDでipconfigコマンドの結果を取得してIPを取得する
1 private void GetIP6() 2 { 3 Process cmd = new Process(); 4 cmd.StartInfo.FileName = "ipconfig.exe";//设置程序名 5 cmd.StartInfo.Arguments = "/all"; //参数 6 //重定向标准输出 7 cmd.StartInfo.RedirectStandardOutput = true; 8 cmd.StartInfo.RedirectStandardInput = true; 9 cmd.StartInfo.UseShellExecute = false; 10 cmd.StartInfo.CreateNoWindow = true;//不显示窗口(控制台程序是黑屏) 11 //cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//暂时不明白什么意思 12 /* 13 收集一下 有备无患 14 关于:ProcessWindowStyle.Hidden隐藏后如何再显示? 15 hwndWin32Host = Win32Native.FindWindow(null, win32Exinfo.windowsName); 16 Win32Native.ShowWindow(hwndWin32Host, 1); //先FindWindow找到窗口后再ShowWindow 17 */ 18 cmd.Start(); 19 string info = cmd.StandardOutput.ReadToEnd(); 20 cmd.WaitForExit(); 21 cmd.Close(); 22 textBox1.AppendText(info); 23 }
⑦NetworkInformation
1 private void GetIP5() 2 { 3 //需要的命名空间 4 //using System.Net.NetworkInformation; 5 //using System.Net.Sockets; 6 string str = ""; 7 NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); 8 int i = 0; 9 foreach (NetworkInterface adapter in adapters) 10 { 11 12 IPInterfaceProperties adapterProperties = adapter.GetIPProperties(); 13 UnicastIPAddressInformationCollection allAddress = 14 adapterProperties.UnicastAddresses; 15 if (allAddress.Count > 0) 16 { 17 str += "interface " + i + "description:\n\t " + adapter.Description + "\n "; 18 i++; 19 foreach (UnicastIPAddressInformation addr in allAddress) 20 { 21 if (addr.Address.AddressFamily == AddressFamily.InterNetworkV6) 22 { 23 ipListComb.Items.Add(addr.Address); 24 } 25 if (addr.Address.AddressFamily == AddressFamily.InterNetwork) 26 { 27 comboBox1.Items.Add(addr.Address); 28 } 29 30 } 31 } 32 } 33 MessageBox.Show(str); 34 }
以上がC# でローカル IP の収集と並べ替えを取得する 7 つのメソッドのサンプル コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

XML形式を変更する方法はいくつかあります。Atepadなどのテキストエディターを使用して手動で編集する。 XmlBeautifierなどのオンラインまたはデスクトップXMLフォーマットツールを使用して自動的にフォーマットします。 XSLTなどのXML変換ツールを使用して変換ルールを定義します。または、Pythonなどのプログラミング言語を使用して解析および操作します。元のファイルを変更してバックアップするときは注意してください。
