如何通过一个计算机名来查出它在局域网中的IP !!!!!~~~

rdo-mark 2003-01-15 11:39:34
如何通过一个计算机名来查出它在局域网中的IP !!!!!~~~
局域网中的IP是动态的
...全文
77 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rdo-mark 2003-01-21
  • 打赏
  • 举报
回复
我的邮箱是
ch_z_x@21cn.com
chinayang 2003-01-16
  • 打赏
  • 举报
回复
最简单的方法.执行ping命令,把结果导入一个文件中,对该文件进行处理
koa3000 2003-01-16
  • 打赏
  • 举报
回复
vb中从域名得到IP及从IP得到域名

Private Const WS_VERSION_REQD = &H101
Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD = 1
Private Const SOCKET_ERROR = -1
Private Const WSADescription_Len = 256
Private Const WSASYS_Status_Len = 128

Private Type HOSTENT
hname As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type

Private Type WSADATA
wversion As Integer
wHighVersion As Integer
szDescription(0 To WSADescription_Len) As Byte
szSystemStatus(0 To WSASYS_Status_Len) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpszVendorInfo As Long
End Type
Private Declare Function gethostbyaddr Lib "WSOCK32.DLL" (addr As Any, ByVal _
byteslen As Integer, addrtype As Integer) As Long
Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal _
wVersionRequired&, lpWSAData As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal _
hostname$) As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, _
ByVal hpvSource&, ByVal cbCopy&)

Function hibyte(ByVal wParam As Integer) '获得整数的高位
hibyte = wParam \ &H100 And &HFF&
End Function

Function lobyte(ByVal wParam As Integer) '获得整数的低位
lobyte = wParam And &HFF&
End Function

Function SocketsInitialize()
Dim WSAD As WSADATA
Dim iReturn As Integer
Dim sLowByte As String, sHighByte As String, sMsg As String

iReturn = WSAStartup(WS_VERSION_REQD, WSAD)

If iReturn <> 0 Then
MsgBox "Winsock.dll 没有反应."
End
End If

If lobyte(WSAD.wversion) < WS_VERSION_MAJOR Or (lobyte(WSAD.wversion) = WS_VERSION_MAJOR And hibyte(WSAD.wversion) < WS_VERSION_MINOR) Then
sHighByte = Trim$(str$(hibyte(WSAD.wversion)))
sLowByte = Trim$(str$(lobyte(WSAD.wversion)))
sMsg = "Windows Sockets版本 " & sLowByte & "." & sHighByte
sMsg = sMsg & " 不被winsock.dll支持 "
MsgBox sMsg
End
End If

If WSAD.iMaxSockets < MIN_SOCKETS_REQD Then
sMsg = "这个系统需要的最少Sockets数为 "
sMsg = sMsg & Trim$(str$(MIN_SOCKETS_REQD))
MsgBox sMsg
End
End If

End Function

Sub SocketsCleanup()
Dim lReturn As Long

lReturn = WSACleanup()

If lReturn <> 0 Then
MsgBox "Socket错误 " & Trim$(str$(lReturn)) & " occurred in Cleanup "
End
End If
End Sub


Sub Form_Load()
'初始化Socket
SocketsInitialize
End Sub

Private Sub Form_Unload(Cancel As Integer)
'清除Socket
SocketsCleanup
End Sub
Private Function getip(name As String) As String
Dim hostent_addr As Long
Dim host As HOSTENT
Dim hostip_addr As Long
Dim temp_ip_address() As Byte
Dim i As Integer
Dim ip_address As String

hostent_addr = gethostbyname(name)

If hostent_addr = 0 Then
getip = "" '主机名不能被解释
Exit Function
End If

RtlMoveMemory host, hostent_addr, LenB(host)
RtlMoveMemory hostip_addr, host.hAddrList, 4

ReDim temp_ip_address(1 To host.hLength)
RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength

For i = 1 To host.hLength
ip_address = ip_address & temp_ip_address(i) & "."
Next
ip_address = Mid$(ip_address, 1, Len(ip_address) - 1)

getip = ip_address

End Function

Private Sub Command1_click()
Dim str As String
str = getip(Text1.Text)
If str = "" Then
Text2.Text = "主机名不能被解释"
Else
Text2.Text = str
End If
End Sub
Private Function getname(addrstr As String) As String
Dim hostent_addr As Long
Dim host As HOSTENT
Dim addr(0 To 50) As Byte
Dim addrs As String
Dim hname(1 To 50) As Byte
Dim str As String
Dim i As Integer, j As Integer
Dim temp_int As Integer
Dim byt As Byte
str = Trim$(addrstr)
i = 0
j = 0
Do
temp_int = 0
i = i + 1
Do While Mid$(str, i, 1) >= "0" And Mid$(str, i, 1) <= "9" And i <= Len(str)
temp_int = temp_int * 10 + Mid$(str, i, 1)
i = i + 1
Loop
If temp_int <= 255 Then
addr(j) = temp_int
j = j + 1
End If

Loop Until Mid$(str, i, 1) <> "." Or i > Len(str) Or temp_int > 255
If temp_int > 255 Then
getname = "地址非法"
Exit Function
End If
hostent_addr = gethostbyaddr(addr(0), j, 2)
If hostent_addr = 0 Then
getname = "此地址无法解析"
Exit Function
End If
RtlMoveMemory host, hostent_addr, LenB(host)
RtlMoveMemory hname(1), host.hname, 50
j = 51
For i = 1 To 50
If hname(i) = 0 Then
j = i
End If
If i >= j Then
hname(i) = 32
End If
Next i
getname = Trim$(StrConv(hname, vbUnicode))
End Function
Private Sub Command2_Click()
Dim name As String
name = getname(Text2.Text)
If name = "" Then
name = "此地址没有域名"
End If
Text1.Text = name
End Sub


——
csdn早就贴出来了,你们应该自己去看的。






dark_shark 2003-01-16
  • 打赏
  • 举报
回复
在dos下用ping就可以了不用编程
coolhealth 2003-01-15
  • 打赏
  • 举报
回复
我的E-MAIL是:

coolhealth@eyou.com


我也想要一份, 谢谢!
zqfleaf 2003-01-15
  • 打赏
  • 举报
回复
贴代码有点长,你留下mail给你发一个列子。或发短信
rdo-mark 2003-01-15
  • 打赏
  • 举报
回复
100分哦!
一、IPBook(超级网络邻居)可以做什么? IPBook(超级网络邻居)是一款小巧的搜索共享资源及FTP共享的工具,软件自解压后就能直接运行,无需安装。 它还有许多辅助功能,如发送短信等等。具体功能如下: 1、查出自己的IP地址和计算机名等等。 2、查出自己所在网段所有机器的计算机名,工作组,MAC地址和共享资源。并且可以打开共享资源,类似于Windows的网络邻居。 3、查出Internet上任意IP地址的计算机名,工作组和共享资源。并且可以进行Ping,Nbtstat等操作。 4、可以自动将查出的主要信息存储起来,以便下次查看。并且可以将之输出(Export)到文本文件去,以便于编辑。 5、给局域网或者Internet上指定的计算机发送消息。(新版本的IPBook可以在win98/win2000等操作系统使用发送短信功能。但注意只有win2000以上的操作系统才集成了接受信使服务的收短信功能,如果win98系统要收短信的话,就要打开winpopup程序才行。) 6、对指定的IP地址检测端口是否开放,进行ping,nbtstat,域名-IP地址互换等。 7、检查HTTP、FTP服务及隐藏共享。 8、在线升级 二、快速入门 1、启动IPBook后,自动测出本机的IP地址,计算机名。图,两个文本编辑框,形如:**.**.**.**和**.**.**的分别是本机的IP地址,与本网段的地址范围。 (*代表的是数字) 2、查本网段所有机器的计算机名与共享资源。 点击“扫描一个网段”按钮,几秒钟之后,在左部的列表框显示的就是本网段所有在位机器的详细情况。 其IP地址,计算机名,工作组,信使名等等。等所有机器情况查完过后,再点击按钮“点验共享资源”, 就会查出本网段机器的共享资源,在右部的树状显示框显示。可以选择是否同时搜索HTTP,FTP,隐藏共享服务。 3、查任意网段的所有机器的计算机名与共享资源。 将本网段IP地址范围改成你想要查的地址范围。如上图、以**.**.**的形式显示的就是网段范围。 然后,点击“扫描一个网段”和“点验共享资源”这两个按钮,可以查出计算机名与共享资源。 如果注册后,“大范围搜索”的功能就被激活了,可以同时搜索任意范围的计算机名,工作组,MAC地址及共享资源等等。 4、管理以前搜索的结果。 切换到“Datebase”页面,这里列出了以前搜索的结果,可以进行排序、删除、输出、清空等操作。 5、搜索HTTP服务,FTP服务及隐藏共享。 “点验共享资源”右边的下拉式菜单有HTTP服务,FTP服务及隐藏共享。 三、常见问题 1、我搜索到的许多只有一个ip地址,其余都空白,这代表什么? 答:有一些IP地址内容空白,说明他在位,但是对方拒绝扫描计算机名。 2、 还有为什么许多MAC地址都是一样的?不是每一个网卡的MAC地址是全球唯一的吗? 答:MAC地址是网卡才有的,所以只有局域网才有效。国际互联网一般不是用网卡接入的,而是用modem通过电话线或者同轴电缆接入的,因此网卡地址无效。
1、查出自己的IP地址和计算机名等等。 2、查出自己所在网段所有机器的计算机名,工作组,MAC地址和共享资源。并且可以打开共享资源,类似于Windows的网络邻居。 3、查出Internet上任意IP地址的计算机名,工作组和共享资源。并且可以进行Ping,Nbtstat等操作。 4、可以自动将查出的主要信息存储起来,以便下次查看。并且可以将之输出(Export)到文本文件去,以便于编辑。 5、给局域网或者Internet上指定的计算机发送消息。(新版本的IPBook可以在win98/win2000等操作系统使用发送短信功能。但注意只有win2000以上的操作系统才集成了接受信使服务的收短信功能,如果win98系统要收短信的话,就要打开winpopup程序才行。) 6、对指定的IP地址检测端口是否开放,进行ping,nbtstat,域名-IP地址互换等。 7、检查HTTP、FTP服务及隐藏共享。 8、在线升级 二、快速入门 1、启动IPBook后,自动测出本机的IP地址,计算机名。图,两个文本编辑框,形如:**.**.**.**和**.**.**的分别是本机的IP地址,与本网段的地址范围。 (*代表的是数字) 2、查本网段所有机器的计算机名与共享资源。 点击“扫描一个网段”按钮,几秒钟之后,在左部的列表框显示的就是本网段所有在位机器的详细情况。 其IP地址,计算机名,工作组,信使名等等。等所有机器情况查完过后,再点击按钮“点验共享资源”, 就会查出本网段机器的共享资源,在右部的树状显示框显示。可以选择是否同时搜索HTTP,FTP,隐藏共享服务。 3、查任意网段的所有机器的计算机名与共享资源。 将本网段IP地址范围改成你想要查的地址范围。如上图、以**.**.**的形式显示的就是网段范围。 然后,点击“扫描一个网段”和“点验共享资源”这两个按钮,可以查出计算机名与共享资源。 如果注册后,“大范围搜索”的功能就被激活了,可以同时搜索任意范围的计算机名,工作组,MAC地址及共享资源等等。 4、管理以前搜索的结果。 切换到“Datebase”页面,这里列出了以前搜索的结果,可以进行排序、删除、输出、清空等操作。 5、搜索HTTP服务,FTP服务及隐藏共享。 “点验共享资源”右边的下拉式菜单有HTTP服务,FTP服务及隐藏共享。 三、常见问题 1、我搜索到的许多只有一个ip地址,其余都空白,这代表什么? 答:有一些IP地址内容空白,说明他在位,但是对方拒绝扫描计算机名。 2、 还有为什么许多MAC地址都是一样的?不是每一个网卡的MAC地址是全球唯一的吗? 答:MAC地址是网卡才有的,所以只有局域网才有效。国际互联网一般不是用网卡接入的,而是用modem通过电话线或者同轴电缆接入的,因此网卡地址无效。 四、其他情况 如果还有问题,请来信到我的信箱或者到论坛来讨论问题。 为了保持最新的版本,,请点击“在线升级”按钮下载最新的版本。 或者到请到我的主页zhu_xfxn.nease.net。 如果你用得很满意,请注册。

1,502

社区成员

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

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