Foxtable(狐表)用户栏目专家坐堂 → [求助]请问怎么用代码设置ip和dns?


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

主题:[求助]请问怎么用代码设置ip和dns?

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


加好友 发短信
等级:小狐 帖子:375 积分:2806 威望:0 精华:0 注册:2015/4/29 11:50:00
[求助]请问怎么用代码设置ip和dns?  发帖心情 Post By:2023/7/23 16:00:00 [只看该作者]

用户在使用360等优化的时候经常将dns修改了,导致设置的内部解析无法正常使用。
请问老师怎么才能在打开程序的时候设置 本机ip和dns为自动获取,比如BeforeOpenProject事件中判断并处理呢?

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


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

我也不会

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


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

我帮你问了chatgpt,仅供参考

要使用VB.NET获取和修改本机的IP和DNS,你可以使用System.Net.NetworkInformation命名空间中的类来完成这些操作。具体步骤如下:

1. 获取本机的IP和DNS信息:

```vb.net
Imports System.Net.NetworkInformation

' 获取本机的IP和DNS信息
Public Sub GetIPAndDNSInfo()
    ' 获取本机的网络接口信息
    Dim networkInterfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()

    For Each networkInterface As NetworkInterface In networkInterfaces
        Console.WriteLine("Interface Name: " & networkInterface.Name)
        Console.WriteLine("  Description: " & networkInterface.Description)
        Console.WriteLine("  Status: " & networkInterface.OperationalStatus.ToString())
        
        ' 获取IP地址信息
        Dim ipProperties As IPInterfaceProperties = networkInterface.GetIPProperties()
        Dim unicastAddresses As UnicastIPAddressInformationCollection = ipProperties.UnicastAddresses
        
        For Each unicastAddress As UnicastIPAddressInformation In unicastAddresses
            Console.WriteLine("  IP Address: " & unicastAddress.Address.ToString())
            Console.WriteLine("  Subnet Mask: " & unicastAddress.IPv4Mask.ToString())
        Next
        
        ' 获取DNS服务器信息
        Dim dnsServers As IPAddressCollection = ipProperties.DnsAddresses
        For Each dnsServer As IPAddress In dnsServers
            Console.WriteLine("  DNS Server: " & dnsServer.ToString())
        Next

        Console.WriteLine()
    Next
End Sub
```

2. 修改本机的IP和DNS信息:

**注意:修改本机的IP和DNS信息是非常敏感和危险的操作,需要管理员权限,慎重操作。以下示例代码仅供演示,不建议在生产环境中使用。**

```vb.net
Imports System.Net.NetworkInformation
Imports System.Net

' 修改本机的IP和DNS信息
Public Sub SetIPAndDNSInfo(ByVal ipAddress As String, ByVal subnetMask As String, ByVal dnsServers As String())
    Dim networkInterfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()

    For Each networkInterface As NetworkInterface In networkInterfaces
        If networkInterface.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then ' 仅修改以太网接口
            ' 禁用网络接口
            networkInterface.Disable()

            ' 修改IP地址和子网掩码
            Dim ipProperties As IPInterfaceProperties = networkInterface.GetIPProperties()
            Dim ipAddresses As UnicastIPAddressInformationCollection = ipProperties.UnicastAddresses
            
            For Each ipAddressInfo As UnicastIPAddressInformation In ipAddresses
                If ipAddressInfo.Address.AddressFamily = AddressFamily.InterNetwork Then
                    ipProperties.UnicastAddresses.Remove(ipAddressInfo)
                End If
            Next

            Dim newIPAddress As IPAddress = IPAddress.Parse(ipAddress)
            Dim newSubnetMask As IPAddress = IPAddress.Parse(subnetMask)
            Dim newIPInfo As New UnicastIPAddressInformation(newIPAddress, newSubnetMask)
            ipProperties.UnicastAddresses.Add(newIPInfo)

            ' 修改DNS服务器
            Dim dnsAddresses As IPAddressCollection = ipProperties.DnsAddresses
            dnsAddresses.Clear()
            For Each dnsServer As String In dnsServers
                dnsAddresses.Add(IPAddress.Parse(dnsServer))
            Next

            ' 使修改生效
            networkInterface.Enable()

            Console.WriteLine("IP and DNS settings modified successfully.")
            Exit Sub ' 如果有多个以太网接口,修改完第一个接口就退出循环
        End If
    Next

    Console.WriteLine("No Ethernet interface found.")
End Sub
```

使用上述代码时,请确保以管理员身份运行程序,以便进行网络接口的禁用和启用操作。此外,由于修改IP和DNS可能导致网络连接中断或其他问题,请谨慎使用,并确保备份重要数据和配置。

[此贴子已经被作者于2023/7/24 10:11:44编辑过]

 回到顶部