[英]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.