用VB如何获得本机的IP地址?

badboyljl 2003-09-01 04:15:10
用VB如何获得本机的IP地址?
...全文
365 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
红牛哥110 2004-01-07
  • 打赏
  • 举报
回复
獲取公網的IP地址:
http://www.usawww.net/vb/MyIP.rar
有問題請與我聯系.
email:lwt_008@sina.com
suntt 2003-12-23
  • 打赏
  • 举报
回复
还可以读取注册表来获取。
lk_cool 2003-12-23
  • 打赏
  • 举报
回复
winsock.LocalIP
planetike 2003-12-23
  • 打赏
  • 举报
回复
MsgBox Winsock1.LocalIP!
kmzs 2003-12-23
  • 打赏
  • 举报
回复
问得认真多,不过两位大哥已经回答了
sss2002 2003-12-23
  • 打赏
  • 举报
回复
使用 IP 信查询控件

介绍:
IP 信查询控件用可来查询系统占用的 IP 地址及相关信息,是标准的 OCX 控件,本控件使用简单,可以用于 VC 、VB 、PB 、Delphi等常用的可视化开发工具。

本控件仅有一个属性"IPInfo" ,在此属性里可以得到系统的 IP 信息,详见程序及 VB 代码。如有疑问请向本公司咨询,若发现 BUG ,请向本公司报告,谢谢!

下载地址:
http://www.refound.net/download/soft.asp?id=24
badboyljl 2003-09-01
  • 打赏
  • 举报
回复
To:f_d_0(fd)
我的邮箱是:badboyljl@sina.com
多谢!
minghui000 2003-09-01
  • 打赏
  • 举报
回复
winsock.LocalIP
踏平扶桑 2003-09-01
  • 打赏
  • 举报
回复
在窗体上添加一个Winsock控件
MsgBox Winsock1.LocalIP
matchchen 2003-09-01
  • 打赏
  • 举报
回复
如果不用Winsock的话,在98下最简单的是
Shell "winipcfg.exe", vbNormalFocus
在2000和xp下我没试过。
lihonggen0 2003-09-01
  • 打赏
  • 举报
回复
第二种方法:利用api



Private Const MAX_IP = 255
Private Type IPINFO
dwAddr As Long
dwIndex As Long
dwMask As Long
dwBCastAddr As Long
dwReasmSize As Long
unused1 As Integer
unused2 As Integer
End Type
Private Type MIB_IPADDRTABLE
dEntrys As Long
mIPInfo(MAX_IP) As IPINFO
End Type
Private Type IP_Array
mBuffer As MIB_IPADDRTABLE
BufferLen As Long
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetIpAddrTable Lib "IPHlpApi" (pIPAdrTable As Byte, pdwSize As Long, ByVal Sort As Long) As Long
Dim strIP As String


Private Function ConvertAddressToString(longAddr As Long) As String
Dim myByte(3) As Byte
Dim Cnt As Long
CopyMemory myByte(0), longAddr, 4
For Cnt = 0 To 3
ConvertAddressToString = ConvertAddressToString + CStr(myByte(Cnt)) + "."
Next Cnt
ConvertAddressToString = Left$(ConvertAddressToString, Len(ConvertAddressToString) - 1)
End Function

Public Sub Start()
Dim Ret As Long, Tel As Long
Dim bBytes() As Byte
Dim Listing As MIB_IPADDRTABLE
On Error GoTo END1
GetIpAddrTable ByVal 0&, Ret, True
If Ret <= 0 Then Exit Sub
ReDim bBytes(0 To Ret - 1) As Byte
GetIpAddrTable bBytes(0), Ret, False
CopyMemory Listing.dEntrys, bBytes(0), 4
strIP = "你机子上有 " & Listing.dEntrys & " 个 IP 地址。" & vbCrLf
strIP = strIP & "------------------------------------------------" & vbCrLf & vbCrLf
For Tel = 0 To Listing.dEntrys - 1
CopyMemory Listing.mIPInfo(Tel), bBytes(4 + (Tel * Len(Listing.mIPInfo(0)))), Len(Listing.mIPInfo(Tel))
strIP = strIP & "IP 地址 : " & ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr) & vbCrLf
strIP = strIP & "子网掩码 : " & ConvertAddressToString(Listing.mIPInfo(Tel).dwMask) & vbCrLf
strIP = strIP & "广播地址 : " & ConvertAddressToString(Listing.mIPInfo(Tel).dwBCastAddr) & vbCrLf
strIP = strIP & "------------------------------------------------" & vbCrLf
Next
Exit Sub
END1:
MsgBox "ERROR"
End Sub

Private Sub Form_Load()
Start
MsgBox strIP

End Sub

lihonggen0 2003-09-01
  • 打赏
  • 举报
回复
用VB编程获取本机的IP地址最简单的方法是读取 Winsock控件的LocalIP属性。
figo1209 2003-09-01
  • 打赏
  • 举报
回复
用winsock控件可以取得自身的IP
在DOS命令下,可以用"IPCONFIG"来查看ip,网关等信息.
f_d_0 2003-09-01
  • 打赏
  • 举报
回复
我手上有实例,可以获得自己的网卡信息,居于网内指定机器的IP,太长了,我不在这儿敲了,确实须要的话,可以给我你的邮箱.
yijiansong 2003-09-01
  • 打赏
  • 举报
回复
类似问题有帖,查一下吧
expertwjh 2003-09-01
  • 打赏
  • 举报
回复
winsock.LocalIP
longki 2003-09-01
  • 打赏
  • 举报
回复

用Winsock控件,一句就可搞定!
MsgBox Winsock1.LocalIP!
badboyljl 2003-09-01
  • 打赏
  • 举报
回复
急用,帮忙。
我顶。

7,789

社区成员

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

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