Convert IPv6 Address to IP numbers (C#)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Convert IPv6 Address to IP numbers (C#)相关的知识,希望对你有一定的参考价值。
URL: http://lite.ip2location.com/
Use the code below to convert the IP address of your web visitors and lookup for their geographical location, e.g. country, state, city, latitude/longitude, ZIPs, timezone and so on. Free database can be downloaded at http://lite.ip2location.com.
Expand | Embed | Plain Text
-
/// <summary>
-
/// Convert IPV6 Address to IP Number
-
/// Free geolocation database can be downloaded at:
-
/// http://lite.ip2location.com/
-
/// </summary>
-
-
string strIP = "2404:6800:4001:805::1006";
-
System.Net.IPAddress address;
-
System.Numerics.BigInteger ipnum;
-
-
if (System.Net.IPAddress.TryParse(strIP, out address)) {
-
byte[] addrBytes = address.GetAddressBytes();
-
-
if (System.BitConverter.IsLittleEndian) {
-
System.Collections.Generic.List<byte> byteList = new System.Collections.Generic.List<byte>(addrBytes);
-
byteList.Reverse();
-
addrBytes = byteList.ToArray();
-
}
-
-
if (addrBytes.Length > 8) {
-
//IPv6
-
ipnum = System.BitConverter.ToUInt64(addrBytes, 8);
-
ipnum <<= 64;
-
ipnum += System.BitConverter.ToUInt64(addrBytes, 0);
-
} else {
-
//IPv4
-
ipnum = System.BitConverter.ToUInt32(addrBytes, 0);
-
}
-
}
以上是关于Convert IPv6 Address to IP numbers (C#)的主要内容,如果未能解决你的问题,请参考以下文章
ipv4与ipv6 Inet4Address类和Inet6Address类
Codeforces 758D Ability To Convert(区间DP)