获取本机的ip

 https://4sysops.com/archives/ipv6-tutorial-part-6-site-local-addresses-and-link-local-addresses/

 In IPv6, link-local addresses always begin with 1111111010 (FE80).

复制代码
internal class Program
    {
        private static void Main()
        {
            try
            {
                var ipAddress = GetIpAddresses();
                foreach (var item in ipAddress)
                {
                    Console.WriteLine(item.ToString());
                }

            }
            catch (Exception ex)
            {
                while (ex != null)
                {
                    Console.WriteLine(ex.Message);
                    ex = ex.InnerException;
                }
            }
            Console.ReadLine();
        }

        /// <summary>
        /// 获取指定地址族的ip地址
        /// </summary>
        /// <param name="addressFamily"></param>
        /// <returns></returns>
        public static IPAddress[] GetSpecifiedIpAddress(AddressFamily addressFamily)
        {
            var addressList = GetIpAddresses();
            var ipv4Addresses = addressList.Where(x => x.AddressFamily == addressFamily).ToArray();
            return ipv4Addresses;
        }

        /// <summary>
        /// 获取本机的所有ip地址
        /// </summary>
        /// <returns></returns>
        public static IPAddress[] GetIpAddresses()
        {
            var hostName = Dns.GetHostName();
            var hostEntry = Dns.GetHostEntry(hostName);
            return hostEntry.AddressList;
        }
    }
复制代码

IPAddress

AddressFamily IsIPv6LinkLocal IsIPv6Teredo iScopeId

fe80::844b:b9e:ee74:566b%11     

InterNetworkV6  True False 11

fe80::18de:188f:3f57:feed%13  

InterNetworkV6   True   False 13

192.168.0.18    

InterNetwork  False False 不支持

192.168.1.18    

InterNetwork  False False 不支持

2001:0:b4a8:29af:18de:188f:3f57:feed

InterNetworkV6    False True   0

 

 

 网卡的本地IPv6地址

 隧道适配器的本地IPv6地址

 

 本地的IPv4

本地的IPv4

 隧道适配器的IPv6地址

 

 

上面的5个地址:

IPv6:  语法参见http://www.cnblogs.com/chucklu/p/4838147.html

fe80::844b:b9e:ee74:566b%11
fe80::14c8:c62:3f57:feed%13

中间的双冒号,缺省了3组0

%后面的是zone id

 

IPv4:

192.168.0.18
192.168.1.18

 

最后一个地址2001:0:b4a8:29af:14c8:c62:3f57:feed也是属于隧道适配器的

 

fe80::14c8:c62:3f57:feed%13  

这个IPv6地址是属于隧道适配器的(6to4)  6to4 addresses 

隧道适配器 Teredo Tunneling Pseudo-Interface:

连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
IPv6 地址 . . . . . . . . . . . . : 2001:0:b4a8:29af:86a:789:3f57:feed(首选)

本地链接 IPv6 地址. . . . . . . . : fe80::86a:789:3f57:feed%13(首选)
默认网关. . . . . . . . . . . . . : ::
TCPIP 上的 NetBIOS . . . . . . . : 已禁用

 

 

 

 

Global unicast addresses

A global unicast address is simply what we call a public IP address in IPv4—that is, an IP address that is routed across the whole Internet.

You can make out a global unicast address easily: The first three bits are set to 001.

Thus, the address prefix of a global IPv6 address is 2000::/3 because 0010000000000000 is 2000 in hex.

However, in the future, the IANA (Internet Assigned Numbers Authority) might delegate currently unassigned portions of the IPv6 address space.

Hence, 2000::/3 won’t always be the prefix for global unicast addresses.

(Note: The diagram is from Microsoft’s “Introduction to IP Version 6.”)

以0x2001   ,前面3个bit是001  Global Routing Prefix 是 0 0000 0000 0001 +4个字节(32位)

 

 

 

In computer networkingTeredo is a transition technology that gives full IPv6 connectivity for IPv6-capable hosts that are on the IPv4 Internet but have no native connection to an IPv6 network.

Unlike similar protocols, it can perform its function even from behind network address translation (NAT) devices such as home routers.

 

Teredo operates using a platform independent tunneling protocol that provides IPv6 (Internet Protocol version 6) connectivity by encapsulating IPv6 datagram packets within IPv4 User Datagram Protocol (UDP) packets.

Teredo routes these datagrams on the IPv4 Internet and through NAT devices.

Teredo nodes elsewhere on the IPv6 network (called Teredo relays) receive the packets, un-encapsulate them, and pass them on.

 

Teredo is a temporary measure.

In the long term, all IPv6 hosts should use native IPv6 connectivity.

Teredo should be disabled when native IPv6 connectivity becomes available. 

Christian Huitema developed Teredo at Microsoft, and the IETF standardized it as RFC 4380.

The Teredo server listens on UDP port 3544.

 

 

Smart way to get the public Internet IP address/geo loc

I prefer http://icanhazip.com. It returns a simple text string. No HTML parsing required.

string myIp = new WebClient().DownloadString(@"http://icanhazip.com").Trim();

 

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(565)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2014-09-25 封装TeeChart控件
点击右上角即可分享
微信分享提示