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).

  1. internal class Program
  2. {
  3. private static void Main()
  4. {
  5. try
  6. {
  7. var ipAddress = GetIpAddresses();
  8. foreach (var item in ipAddress)
  9. {
  10. Console.WriteLine(item.ToString());
  11. }
  12.  
  13. }
  14. catch (Exception ex)
  15. {
  16. while (ex != null)
  17. {
  18. Console.WriteLine(ex.Message);
  19. ex = ex.InnerException;
  20. }
  21. }
  22. Console.ReadLine();
  23. }
  24.  
  25. /// <summary>
  26. /// 获取指定地址族的ip地址
  27. /// </summary>
  28. /// <param name="addressFamily"></param>
  29. /// <returns></returns>
  30. public static IPAddress[] GetSpecifiedIpAddress(AddressFamily addressFamily)
  31. {
  32. var addressList = GetIpAddresses();
  33. var ipv4Addresses = addressList.Where(x => x.AddressFamily == addressFamily).ToArray();
  34. return ipv4Addresses;
  35. }
  36.  
  37. /// <summary>
  38. /// 获取本机的所有ip地址
  39. /// </summary>
  40. /// <returns></returns>
  41. public static IPAddress[] GetIpAddresses()
  42. {
  43. var hostName = Dns.GetHostName();
  44. var hostEntry = Dns.GetHostEntry(hostName);
  45. return hostEntry.AddressList;
  46. }
  47. }

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.

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

获取本机的ip的更多相关文章

  1. 【Win 10 应用开发】获取本机的IP地址

    按照老规矩,也是朋友的建议,老周今天在吹牛之前,先讲一个小故事. 有朋友问我,老周,你现在还发短信吗,你每个月用多少电话费?唉,实话说,现在真的发短信不多了,套餐送的130条短信,每月都发不了一条.至 ...

  2. C#获取本机公网IP

    /// <summary> /// 获取本机公网IP /// </summary> /// <returns></returns> public sta ...

  3. 获取本机的IP地址(局域网)与主机名称

    编写内容保存为bat @echo off &setlocal enabledelayedexpansion Rem '/*========获取本机的IP地址(局域网)=========*/ e ...

  4. python3脚本获取本机公网ip

    python脚本获取本机公网ip   1.获取公网IP地址方式,访问:http://txt.go.sohu.com/ip/soip 2.代码实现 import requests import re r ...

  5. 获取本机的IP地址和mac地址

    1. 以前一直用ipconfig来查看ip地址,哈哈哈,现在发现挺好玩 #获取本机的IP地址和mac地址 import uuid import socket def get_mac_address() ...

  6. python获取本机的IP

    转载:https://www.cnblogs.com/whu-2017/p/8986842.html 方法一: 通常使用socket.gethostbyname()方法即可获取本机IP地址,但有时候获 ...

  7. Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP

    Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP IP 工具类 源代码: /** * <p> * * @author XiaoPengwei ...

  8. Linux获取本机公网IP,调整双节点主从服务的RPC调用逻辑

    简单记录一次双节点的之间的服务调用叭 ~ 现有: 服务A的双节点A1.A2 服务B的双节点B1.B2 服务A 和服务B 通过 Netty 实现 RPC 通信,可能会导致比较玄学的问题.如图: 要做到 ...

  9. 怎样获取本机的ip地址

    首先介绍一下用到的结构体 struct hostent { const char *h_name; // official name of host char **h_aliases; // alia ...

  10. android获取本机的IP地址和mac物理地址

    /获取本机IP地址 public String getLocalIpAddress() { WifiManager wifiManager = (WifiManager) getSystemServi ...

随机推荐

  1. jQuery 源码分析4: jQuery.extend

    jQuery.extend是jQuery最重要的方法之一,下面看看jQuery是怎样实现扩展操作的 // 如果传入一个对象,这个对象的属性会被添加到jQuery对象中 // 如果传入两个或多个对象,所 ...

  2. 函数strtok

    char* strtok(char *str, const char*delim) char *strtok_r(char *str, const char *delim, char **savept ...

  3. 九度OJ 1505 两个链表的第一个公共结点 【数据结构】

    题目地址:http://ac.jobdu.com/problem.php?pid=1505 题目描述: 输入两个链表,找出它们的第一个公共结点. 输入: 输入可能包含多个测试样例. 对于每个测试案例, ...

  4. POJ 1661 Help Jimmy -- 动态规划

    题目地址:http://poj.org/problem?id=1661 Description "Help Jimmy" 是在下图所示的场景上完成的游戏. 场景中包括多个长度和高度 ...

  5. 九度OJ 1207 质因数的个数

    题目地址:http://ac.jobdu.com/problem.php?pid=1207 题目描述: 求正整数N(N>1)的质因数的个数. 相同的质因数需要重复计算.如120=2*2*2*3* ...

  6. div高度自适应填充剩余部分

    在乐学一百的开发过程中,遇到了一个小乐Fm开发,需要跟百度fm差不多,上边一个条,下边一个条,中间部分填充.但是还不能固定高度,因为屏幕的宽高都不一样...height:100%是不可行的.搜了一圈, ...

  7. NFS vs. CIFS

    1.  CIFS协议分析 CIFS(Common Internet File System,公共互联网文件系统)是当前主流异构平台共享文件系统之一.主要应用在NT/Windows环境下,是由Micro ...

  8. hdu 1576 A/B

    原题链接:hdu 1576 A/B 同样是用扩展的欧几里得算法.A = 9973k+n = xB,从而转化为:xB-9973k=n求解x即可. 具体扩展欧几里得算法请参考:hdu 2669 Roman ...

  9. linux svn authorization failed错误

    authorization failed错误主要是conf/auth文件配置错误,可以参考如下配置: [aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O ...

  10. Linux C 程序 输入输出函数(THREE)

    标准输入输出函数#include<stdio.h>stdio 是 standard input & output 的缩写 字符数据输入输出函数: putchar() , getch ...