(求助)加载窗体的时候获取本机MAC地址,再根据指定的MAC来改指定的IP

andywiliang 2008-03-23 08:15:14
加载窗体的时候获取本机MAC地址,再根据指定的MAC来改指定的IP
谁能把以上程序的代码列出来给我,加上注释,,拜托啦,,
...全文
147 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
paullbm 2008-03-30
  • 打赏
  • 举报
回复
获取MAC地址:

Dim mc
set mc=GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
for each mo in mc
if mo.IPEnabled=true then
msgbox "网卡MAC地址是: " & mo.MacAddress
exit for
end if
next

可把以上代码写入一个函数中,再进行调用。
paullbm 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cbm666 的回复:]
'获取 MAC

Private Sub Form_Load()
MsgBox Replace(MACAddress, ":", "-")
End Sub

Private Function MACAddress() As String
Set objs = GetObject("winmgmts:").ExecQuery("SELECT MACAddress " & "FROM Win32_NetworkAdapter " & "WHERE " & "((MACAddress Is Not NULL) " & "AND (Manufacturer <> " & "'Microsoft'))")
For Each obj In objs
MACAddress = obj.MACAddress
Exit …
[/Quote]


请问这位大哥,如果只想得到当前活动的网卡的MAC呢?
for each之处应该改成什么?
还是在这段代码之后再添加进行活动网卡的判断的代码?
andywiliang 2008-03-24
  • 打赏
  • 举报
回复
可不可以让它运行就自动修改IP,网关,DNS
andywiliang 2008-03-24
  • 打赏
  • 举报
回复
5.6楼,可以解释下吗?
cbm6666 2008-03-24
  • 打赏
  • 举报
回复
'获取 MAC

Private Sub Form_Load()
MsgBox Replace(MACAddress, ":", "-")
End Sub

Private Function MACAddress() As String
Set objs = GetObject("winmgmts:").ExecQuery("SELECT MACAddress " & "FROM Win32_NetworkAdapter " & "WHERE " & "((MACAddress Is Not NULL) " & "AND (Manufacturer <> " & "'Microsoft'))")
For Each obj In objs
MACAddress = obj.MACAddress
Exit For
Next obj
End Function
cbm6666 2008-03-24
  • 打赏
  • 举报
回复
'修改你的IP 网关 与 DNS

'添加 Command1 Text1 Text2 Text3 Text4 Text5

Private Sub Form_Load()
Text1.Text = "192.168.1.18"
Text2.Text = "255.255.255.0"
Text3.Text = "192.168.1.1"
Text4.Text = "60.191.244.5"
Text5.Text = "60.191.244.3"
End Sub

Private Sub Command1_Click()
Dim s
s = Array(Text1.Text, Text2.Text, Text3.Text, Text4.Text, Text5.Text)
MsgBox ChangeIP(Text1.Text, Text2.Text, Text3.Text, Text4.Text, Text5.Text)
End Sub

Function ChangeIP(IP As String, NM As String, GW As String, MDNS As String, SDNS As String) As String
Dim strComputer, objWMIService, colNetAdapters, strIPAddress, strSubnetMask
Dim strGateway, strGatewaymetric, strDNS, objNetAdapter, errEnable, errGateways, errDNS
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(IP) 'ip地址
strSubnetMask = Array(NM) '子网掩码
strGateway = Array(GW) '网关
strDNS = Array(MDNS, SDNS) '主DNS各备DNS
strGatewaymetric = Array(1)
For Each objNetAdapter In colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
If errEnable = 0 And errGateways = 0 And errDNS = 0 Then
ChangeIP = "设置成功!"
Else
ChangeIP = IIf(errEnable = 0, "IP地址和子网掩码设置成功, ", "IP地址或子网掩码设置失败, ")
ChangeIP = IIf(errGateways = 0, ChangeIP & "默认网关设置成功, ", ChangeIP & "默认网关设置失败, ")
ChangeIP = IIf(errDNS = 0, ChangeIP & "DNS设置成功!", ChangeIP & "DNS设置失败!")
End If
Next
End Function

zou8203 2008-03-24
  • 打赏
  • 举报
回复
关注……
cbm6666 2008-03-24
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Text1.Text = "新的IP"
Text2.Text = "新的IP"
Text3.Text = "新的IP"
Text4.Text = "新的IP"
Text5.Text = "新的IP"
Command1_Click
End Sub
itcoco 2008-03-23
  • 打赏
  • 举报
回复
如何从 VisualBasic 调用 GetNetworkParams / GetAdaptersInfo 检索类似 IPCONFIG.EXE 工具 IP 配置信息http://support.microsoft.com/kb/223025
这个功能可多,其中有个就显示mac
qiu5208 2008-03-23
  • 打赏
  • 举报
回复
好象调用API可以实现,顶一下。
andywiliang 2008-03-23
  • 打赏
  • 举报
回复
可以顶上的吗?

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧