最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 獲得本地ip地址的三種方法

 更新時(shí)間:2020年12月18日 08:54:40   作者:波多爾斯基  
這篇文章主要介紹了c# 獲得本地ip地址的三種方法,幫助大家更好的理解和實(shí)用c#,感興趣的朋友可以了解下

網(wǎng)上有很多種方法可以獲取到本地的IP地址。一線常用的有這么些:

枚舉本地網(wǎng)卡

using System.Net.NetworkInformation;
using System.Net.Sockets;

foreach (NetworkInterface netif in NetworkInterface.GetAllNetworkInterfaces()
 .Where(a => a.SupportsMulticast)
 .Where(a => a.OperationalStatus == OperationalStatus.Up)
 .Where(a => a.NetworkInterfaceType != NetworkInterfaceType.Loopback)
 .Where(a => a.GetIPProperties().GetIPv4Properties() != null)
 .Where(a => a.GetIPProperties().UnicastAddresses.Any(ua => ua.Address.AddressFamily == AddressFamily.InterNetwork))
 .Where(a => a.GetIPProperties().UnicastAddresses.Any(ua => ua.IsDnsEligible))
)
{

 Console.WriteLine("Network Interface: {0}", netif.Name);
 IPInterfaceProperties properties = netif.GetIPProperties();
 foreach (IPAddressInformation unicast in properties.UnicastAddresses)
  Console.WriteLine("\tUniCast: {0}", unicast.Address);
}

獲得的信息比較全面,相當(dāng)于網(wǎng)卡的信息都能獲取,但是不能區(qū)分虛擬網(wǎng)卡(比如docker)。

嘗試連接一個(gè)IP地址

string localIP;
using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
{
 socket.Connect("8.8.8.8", 65530);
 IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
 localIP = endPoint.Address.ToString();
}
Console.WriteLine(localIP);

可以避免虛擬網(wǎng)卡,但是對(duì)于內(nèi)網(wǎng)地址,不一定適用,同時(shí)要求網(wǎng)絡(luò)必須在線,并且有其他服務(wù)器可以進(jìn)行連接。

借用DNS解析

using System.Net;

string sHostName = Dns.GetHostName();
IPHostEntry ipE = Dns.GetHostEntry(sHostName);
IPAddress[] IpA = ipE.AddressList;
for (int i = 0; i < IpA.Length; i++)
{
 Console.WriteLine("IP Address {0}: {1} ", i, IpA[i].ToString());
}

IPAddress還可以繼續(xù)通過(guò)篩選IPv4的方法進(jìn)行更精確的選擇,和第一種方法是類似的。操作方法非常簡(jiǎn)潔,但是和獲得網(wǎng)卡信息一樣,不能區(qū)分虛擬網(wǎng)卡。

總結(jié)

對(duì)于有雙網(wǎng)卡的情況,往往兩個(gè)網(wǎng)卡都是有效的IPV4地址,這個(gè)時(shí)候需要使用方法2通過(guò)局域網(wǎng)或者廣域網(wǎng)內(nèi)訪問(wèn)進(jìn)行區(qū)分。當(dāng)然也可以選擇更為復(fù)雜的方式:在局域網(wǎng)內(nèi)使用廣播服務(wù),然后再抓包確定獲取的網(wǎng)絡(luò)地址。

以上就是c# 獲得本地ip地址的三種方法的詳細(xì)內(nèi)容,更多關(guān)于c# 獲得本地ip地址的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#?拼圖游戲的實(shí)戰(zhàn)(附demo)

    C#?拼圖游戲的實(shí)戰(zhàn)(附demo)

    拼圖游戲是常見(jiàn)的一種游戲,本文詳細(xì)的介紹了C#實(shí)現(xiàn)拼圖游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C#中如何獲取當(dāng)前目錄和上級(jí)目錄

    C#中如何獲取當(dāng)前目錄和上級(jí)目錄

    這篇文章主要介紹了C#中如何獲取當(dāng)前目錄和上級(jí)目錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • c#之利用API函數(shù)實(shí)現(xiàn)動(dòng)畫窗體的方法詳解

    c#之利用API函數(shù)實(shí)現(xiàn)動(dòng)畫窗體的方法詳解

    本篇文章是對(duì)c#中利用API函數(shù)實(shí)現(xiàn)動(dòng)畫窗體的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#中DataTable和List互轉(zhuǎn)的示例代碼

    C#中DataTable和List互轉(zhuǎn)的示例代碼

    很多場(chǎng)景下,我們需要將List轉(zhuǎn)換成為DataTable,本文主要介紹了C#中DataTable和List互轉(zhuǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C#實(shí)現(xiàn)控制臺(tái)飛行棋小游戲

    C#實(shí)現(xiàn)控制臺(tái)飛行棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)控制臺(tái)飛行棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下的相關(guān)資料
    2021-07-07
  • C#中使用Socket獲取網(wǎng)頁(yè)源代碼的代碼

    C#中使用Socket獲取網(wǎng)頁(yè)源代碼的代碼

    C#使用Socket獲取網(wǎng)頁(yè)源代碼的代碼,需要的朋友可以參考下。
    2010-12-12
  • 深入理解C#中回調(diào)函數(shù)

    深入理解C#中回調(diào)函數(shù)

    回調(diào)函數(shù)是一種在編程中常用的概念,本文將介紹回調(diào)函數(shù)的概念、語(yǔ)法和應(yīng)用,并討論如何設(shè)計(jì)優(yōu)化和重用回調(diào)函數(shù),以及它們?cè)诓l(fā)編程中的用途,感興趣的可以了解一下
    2024-02-02
  • C#判斷頁(yè)面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法

    C#判斷頁(yè)面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#判斷頁(yè)面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法,是一個(gè)非常簡(jiǎn)單實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成

    Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成

    這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 詳解LINQ入門(下篇)

    詳解LINQ入門(下篇)

    這篇文章主要介紹了詳解LINQ入門(下篇),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論

宜兰市| 曲麻莱县| 靖安县| 特克斯县| 韩城市| 白沙| 吴旗县| 兰坪| 龙游县| 静安区| 德阳市| 苍山县| 东台市| 从江县| 阜新| 马龙县| 涿州市| 马山县| 蒙自县| 光山县| 邵东县| 嘉善县| 嘉荫县| 伊宁市| 西宁市| 剑川县| 霞浦县| 芜湖市| 雷州市| 信阳市| 宜春市| 通渭县| 武鸣县| 青岛市| 丹巴县| 宁明县| 内乡县| 吉隆县| 滦南县| 昌平区| 油尖旺区|