在上网时如何知道本机的IP地址?

ourbone 2003-08-10 02:55:46
在VB中如何编程实现在上网时能获取本机在Internet上动态分配的IP?
...全文
1047 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
viena 2003-08-11
  • 打赏
  • 举报
回复
命令行ipconfig/all
dddd8888 2003-08-11
  • 打赏
  • 举报
回复
MsgBox Winsock1.LocalIP
gpo2002 2003-08-11
  • 打赏
  • 举报
回复
Private Type HOSTENT
hName As Long
hAliases As Long
hAddrType As Integer
hLen As Integer
hAddrList As Long
End Type

Private Declare Function gethostbyname Lib "wsock32" (ByVal hostname As String) As Long
Private Declare Sub CopyMemoryIP Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Declare Function GetComputerNameA Lib "kernel32" (ByVal lpBuffer As String, nSize As Long) As Long


Public Function GetIPFromHostName(ByVal sHostName As String) As String

Dim ptrHosent As Long
Dim Host As HOSTENT
Dim dwIPAddr As Long
Dim tmpIPAddr() As Byte
Dim I As Integer
Dim sIPAddr As String

ptrHosent = gethostbyname(sHostName & vbNullChar)

If ptrHosent <> 0 Then

CopyMemoryIP Host, ptrHosent, Len(Host)
CopyMemoryIP dwIPAddr, Host.hAddrList, 4
ReDim tmpIPAddr(1 To Host.hLen)
CopyMemoryIP tmpIPAddr(1), dwIPAddr, Host.hLen
For I = 1 To Host.hLen - 1
sIPAddr = sIPAddr & tmpIPAddr(I) & "."
Next
sIPAddr = sIPAddr & tmpIPAddr(I)
GetIPFromHostName = sIPAddr

End If

End Function

Public Function GetComputerName() As String
Dim UserName As String * 255

Call GetComputerNameA(UserName, 255)
GetComputerName = Left$(UserName, InStr(UserName, Chr$(0)) - 1)
End Function

===========================

Private Sub Command1_Click()
MsgBox GetComputerName & vbCrLf & GetIPFromHostName(GetComputerName)
End Sub
jornet 2003-08-11
  • 打赏
  • 举报
回复
ipconfig
IT硬科技 2003-08-11
  • 打赏
  • 举报
回复
在窗体上加一个Winsock控件: 控件在 工程-部件-Microsoft Winsock Control6.0
再加入以下代码就行了
aa= Winsock1.LocalIP
bb= Winsock1.LocalHostName

aa变量得到的就是本机IP
bb变量得到的就是本机名

答对了,记得多给点分数啊,谢谢了
JohnsonHome 2003-08-10
  • 打赏
  • 举报
回复
为什么MsgBox Winsock1.RemoteHost
MsgBox Winsock1.Object
消息框显示出来没有内容的,我是局域网里试的
zq_benben 2003-08-10
  • 打赏
  • 举报
回复
ipconfig
blueskywjs 2003-08-10
  • 打赏
  • 举报
回复
ping yourpcname
rednod 2003-08-10
  • 打赏
  • 举报
回复
MsgBox Winsock1.LocalIP '本机ip
MsgBox Winsock1.LocalHostName '显示本机名称
MsgBox Winsock1.LocalPort '显示本地端口.
MsgBox
MsgBox Winsock1.RemoteHost
MsgBox Winsock1.Object
我实验winsock控件试过的,很简单.
但是如果你本身在局域网里,然后又拨号,得到的是 你在局域网的ip .
你只要把Winsock1.LocalIP 传个一个变量就可以了, 或象我那样的 直接输出.
zjcxc 2003-08-10
  • 打赏
  • 举报
回复
打开netmetting--帮助--关于
就可以看到本机的IP地址了.

或者ping 计算机名

7,785

社区成员

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

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