簡體   English   中英

在.Net中獲取IP地址的正確方法是什么?

[英]What is right way to get IP address in .Net?

我有兩個獨立的exe的Parent.exe和Child.exe。

Parent.exe打開Child.exe,用戶在child.exe中執行一些操作,然后child.exe將一些已處理的數據發送回Parent.exe。 兩個exe都停留在同一台機器上

Child.Exe和Parent.Exe之間的通信是通過TCP IP(套接字編程)完成的。 為此,我們需要計算本地IP地址,我們以前是通過以下方式計算它的:

       string hostname = Dns.GetHostName();

       IPHostEntry ipEntry = Dns.GetHostEntry(hostname);
       IPAddress[] addr = ipEntry.AddressList;
       string FinalIpAddrs = addr[0]

在XP上一切正常,但是在Windows 7上我們遇到了問題。 下面的行返回Mac Address,什么是正確的方法,這樣才能在XP和Win7上都可以使用?

       string FinalIpAddrs = addr[0]

呵呵,那些wh程序又不知道。

  • 您不需要知道IP地址,而使用127.0.0.1,這是本地回送地址。 像這樣的簡單-正是因為這個原因。

  • 考慮提高效率。 如果那是同一台機器,則TCP的使用情況不好。 使用命名管道,這是Windows集成的通信機制,可以跨機器工作,但是在同一台機器上,它使用共享內存,這比TCP更有效。

為什么不只使用IPAddress.Loopback (或IPv6Loopback )?

回送地址設計用於完全在同一主機上進行通信。


我也在猜你在說什么:

下面一行返回Mac地址

您實際上的意思是它正在返回一個IPv6地址。 該代碼無法返回MAC地址。

是否有不使用127.0.0.1的特定要求? 如果沒有,那么我將使用它而無需進行任何計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM