Foxtable(狐表)用户栏目专家坐堂 → 检测本机ipv6地址


  共有3646人关注过本帖树形打印复制链接

主题:检测本机ipv6地址

帅哥哟,离线,有人找我吗?
ycs5801
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1068 积分:7624 威望:0 精华:0 注册:2009/6/24 9:44:00
检测本机ipv6地址  发帖心情 Post By:2023/8/6 15:25:00 [只看该作者]

Dim IPAdress As System.Net.IPAddress
Dim HostName As String
HostName = System.Net.Dns.GetHostName '获得本机的机器名
Dim l As Integer = System.Net.Dns.GetHostByName(HostName).AddressList.Length
Dim s As String = ""
For i As Integer=0 To l-1
    IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.getValue(i) '获得本机的IP
    s &= IPAdress.Tostring & ","
Next
msgbox(s.trim(","))

以上论坛找到的方法,可以检测出本机的ip4地址,现在想检测到本机的ipv6地址需要怎样改?有线网络连接的。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/6 21:21:00 [只看该作者]

代码默认就会返回对应的ipv4地址还是ipv6地址,前提是确实设置并用到了ipv6地址。如果要把ipv4转换为ipv6可以这样

s &= IPAdress.MapToIPv6.Tostring & ","

https://learn.microsoft.com/zh-cn/dotnet/api/system.net.ipaddress.maptoipv6?view=netframework-4.5&redirectedfrom=MSDN#System_Net_IPAddress_MapToIPv6

 回到顶部
帅哥哟,离线,有人找我吗?
ycs5801
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1068 积分:7624 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2023/8/6 23:32:00 [只看该作者]

这个只是把ipv4地址转换成了ipv6地址,并不是真正的ipv6地址啊?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/7 8:45:00 [只看该作者]

这种应该是【内嵌IPv4地址表示法】:https://baike.baidu.com/item/IPv6/172297?fr=ge_ala,如果要显示为其它格式,自行百度吧,我也没有什么研究

 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7959 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2023/8/7 9:42:00 [只看该作者]

狐表以外的技术问题,问chatgpt更快:


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

稍微改一下成狐表用的代码:
Dim hostName As String = System.Net.Dns.GetHostName()
Dim ipAddresses() As System.Net.IPAddress = System.Net.Dns.GetHostAddresses(hostName)

For Each ipAddress As System.Net.IPAddress In ipAddresses
    If ipAddress.AddressFamily = System.Net.Sockets.AddressFamily.InterNetworkV6 Then
        Output.Show("IPv6 Address: " & ipAddress.ToString())
    End If
Next

执行结果:
IPv6 Address: fe80::1f98:fe2a:180b:eb61%6

 回到顶部