Foxtable(狐表)用户栏目专家坐堂 → 如何获得本机IP地址呢?


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

主题:如何获得本机IP地址呢?

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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
如何获得本机IP地址呢?  发帖心情 Post By:2017/6/28 23:03:00 [只看该作者]

请问, 如何获得本机IP地址呢?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/28 23:30:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
  发帖心情 Post By:2017/6/29 0:48:00 [只看该作者]

不行呀, 获得的不行,不是一个活动的当前Ip, 我机器上有 好几个网卡,该 怎样才能获得 正在使用着的呢?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/29 9:17:00 [只看该作者]

 没问题啊

 

Dim cmd As  new Process()
cmd.StartInfo.FileName = "tracert"
cmd.StartInfo.Arguments = "-h 1 baidu.com"

cmd.StartInfo.RedirectStandardOutput = True
cmd.StartInfo.RedirectStandardInput = True
cmd.StartInfo.UseShellExecute = False
cmd.StartInfo.CreateNoWindow = True

cmd.Start()
Dim info As String = cmd.StandardOutput.ReadToEnd()
msgbox(Info)

Dim mc = System.Text.RegularExpressions.Regex.Matches(info, "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
If mc.count > 1 Then
    Return mc(1).value

Else
    Return Nothing
End If

 


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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
  发帖心情 Post By:2017/6/29 19:44:00 [只看该作者]

试了一下这个方法基本不可用

(1) 效率很低, 执行一下,要将近一分钟

(2) 结果也不对,取到的是家里的无线路由器的Ip,而不是我的机器上的,如下图所示


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




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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/29 20:46:00 [只看该作者]


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/29 20:51:00 [只看该作者]

或者试试

 

Dim cmd As  new Process()
cmd.StartInfo.FileName = "ipconfig"
'cmd.StartInfo.Arguments = ""

cmd.StartInfo.RedirectStandardOutput = True
cmd.StartInfo.RedirectStandardInput = True
cmd.StartInfo.UseShellExecute = False
cmd.StartInfo.CreateNoWindow = True

cmd.Start()
Dim info As String = cmd.StandardOutput.ReadToEnd()
msgbox(Info)

Dim mc = System.Text.RegularExpressions.Regex.Matches(info, "(?<= IPv4 地址.+)[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
If mc.count > 0 Then
    Return mc(0).value
Else
    Return Nothing
End If


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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
  发帖心情 Post By:2017/6/30 20:05:00 [只看该作者]

Dim cmd As  new Process()
cmd.StartInfo.FileName = "ipconfig"
'cmd.StartInfo.Arguments = ""

cmd.StartInfo.RedirectStandardOutput = True
cmd.StartInfo.RedirectStandardInput = True
cmd.StartInfo.UseShellExecute = False
cmd.StartInfo.CreateNoWindow = True


楼上这种方式执行效率很低的,要将近 1分钟, 为了获取一个 IP 地址,不值,  


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


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

Dim adapters() As System.Net.NetworkInformation.NetworkInterface = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
For Each adapter As System.Net.NetworkInformation.NetworkInterface In adapters
    
    Output.Show("描述:" & adapter.Description)
    Output.Show("标识符:" & adapter.Id)
    Output.Show("名称:" & adapter.Name)
    Output.Show("类型:" & adapter.NetworkInterfaceType)
    Output.Show("速度:" & adapter.Speed * 0.001 * 0.001 & "M")
    Output.Show("操作状态:" & adapter.OperationalStatus)
    Output.Show("MAC 地址:" & adapter.GetPhysicalAddress().Tostring)
    
    Dim ipp = adapter.GetIPProperties().UnicastAddresses
    For Each ip As System.Net.NetworkInformation.UnicastIPAddressInformation  In ipp
        If ip.Address.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork
            Output.Show("IP 地址: " & ip.Address.ToString())
            Exit For
        End If
    Next
Next

操作状态为1的就是活动的网卡

 回到顶部