नेट आप कर सकते हैं के रूप में मशीन का उपयोग करने के व्यवहार करेगा बता देगा का उत्पादन होता है:
IPHostEntry iphostentry = Dns.GetHostEntry (Dns.GetHostName());
फिर किसी भी होस्ट नाम के लिए, यह जांचें कि क्या यह iphostEntry.AddressList
में आईपी में से किसी एक को हल करता है (यह एक आईपीएड्रेस [] है)।
using System;
using System.Net;
class Test {
static void Main (string [] args)
{
IPHostEntry iphostentry = Dns.GetHostEntry (Dns.GetHostName());
foreach (string str in args) {
IPHostEntry other = null;
try {
other = Dns.GetHostEntry (str);
} catch {
Console.WriteLine ("Unknown host: {0}", str);
continue;
}
foreach (IPAddress addr in other.AddressList) {
if (IPAddress.IsLoopback (addr) || Array.IndexOf (iphostentry.AddressList, addr) != -1) {
Console.WriteLine ("{0} IsLocal", str);
break;
}
}
}
}
}
टिस ने काम किया, हालांकि ऐसा लगता है कि यह "127.0.0.1" जैसे पते के लिए परीक्षण नहीं करता है। यह एक काम करता है (यदि आपको लगता है तो अपनी पोस्ट को अपडेट करने के लिए स्वतंत्र महसूस करें): var local_ip = (आईएन से डीएनएस.गेटहोस्टएन्ट्री (डीएनएस.गेटहोस्टनाम()) में। एड्रेसलिस्ट आईपी का चयन करें)। टॉलिस्ट(); local_ip.Add (IPAddress.Loopback); local_ip.Add (IPAddress.IPv6Loopback); var target_ip = Dns.GetHostEntry (लक्ष्य)। एड्रेसलिस्ट; var intersect = ip1 से target_ip में आईपी 2 में स्थानीय_आईपी आईपी 1 पर आईपी 2 आईपी 1 के बराबर है; वापसी intersect.Any(); – galets