برای کار با آدرسهای IPv4 و IPv6 در CSharp از کتابخانه System.Net و کلاس IPAddress استفاده میشود.
به منظور اعتبارسنجی آدرسهای IP میتوان از کد زیر استفاده نمود:
1public static bool IsValidIp(string address)
2{
3 return IPAddress.TryParse(address, out _);
4}
به منظور تشخیص نسخهی آدرسهای IP میتوان از کد زیر استفاده نمود:
1public static IpVersion GetIpVersion(string address)
2{
3 if (IPAddress.TryParse(address, out var ipAddress))
4 {
5 if(ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
6 {
7 return IpVersion.IPv4;
8 }
9 else if(ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
10 {
11 return IpVersion.IPv6;
12 }
13 }
14
15 return IpVersion.Unknown;
16}
17
18public enum IpVersion
19{
20 Unknown = -1,
21 IPv4,
22 IPv6
23}
آدرس Loopback یک آدرس IP ویژه است که برای آزمایش کارتهای شبکه، ارتباطات و انتقال در یک کارت شبکه محلی و برنامههای کاربردی استفاده میشود. این آدرس IP مربوط به Loopback Interface نرمافزار کارت شبکه است که هیچ سختافزاری با آن ارتباط ندارد و نیازی به اتصال فیزیکی به شبکه ندارد. برای تشخیص اینکه یک IP از نوع Loopback است یا خیر میتوان از کد زیر استفاده نمود:
1public static bool IsLoopback(string address)
2{
3 if (address == "localhost")
4 return true;
5
6 if (IPAddress.TryParse(address, out var ipAddress))
7 {
8 if (ipAddress == IPAddress.Loopback || ipAddress == IPAddress.IPv6Loopback)
9 return true;
10 }
11
12 return false;
13}