注册 登录
编程论坛 PowerBuilder

如何获取IP地址

笨龙 发布于 2006-09-21 11:02, 2754 次点击
如题
6 回复
#2
︷順⑦?zì繎2006-09-21 11:15
#3
潇洒老乌龟2006-09-22 10:14

获取本机IP

声明win32 API函数:
function int WSAStartup( uint UIVersionRequested, ref s_WSAData lpWSAData ) library "wsock32.dll"
function int WSACleanup() library "wsock32.dll"
function int WSAGetLastError ( ) library "wsock32.dll"
function int gethostname ( ref string name, int namelen ) library "wsock32.dll"
function string GetHost(string lpszhost, ref blob lpszaddress ) library "pbws32.dll"

使用方法:
s_wsadata l_WSAData
string ls_HostName = space(128)
string ls_IpAddress
int li_version = 257
blob{4} lb_hostaddress

IF wsastartup ( li_version, l_WSAData ) = 0 THEN

IF gethostname ( ls_HostName, len(ls_HostName) ) < 0 THEN
messagebox("GetHostName",WSAGetLastError())
ELSE
GetHost(ls_HostName, lb_HostAddress)
ls_IpAddress = string(asc(string(blobmid(lb_HostAddress,1,1))),"000") + "."
ls_IpAddress += string(asc(string(blobmid(lb_HostAddress,2,1))),"000") + "."
ls_IpAddress += string(asc(string(blobmid(lb_HostAddress,3,1))),"000") + "."
ls_IpAddress += string(asc(string(blobmid(lb_HostAddress,4,1))),"000")
END IF
WSACleanup()
ELSE
messagebox("GetHostName",WSAGetLastError())
END IF
sle_1.text=ls_hostname
sle_2.text=ls_ipaddress

#4
石门书生2006-09-29 08:10
function int WSAStartup( uint UIVersionRequested, ref s_WSAData lpWSAData ) library "wsock32.dll"
这句语句老是出错,是怎么回事?
“error c0001: Illegl data type: lpWSAData”
#5
石门书生2006-09-29 11:15
s_WSAData 这个结构是如何定义的
#6
ヤ順祺冄繎ヤ2006-10-02 20:04
2楼的网站上面可以下载到代码。。

你也可以在网上找一下,很好找的。。
#7
jiazishu2006-11-09 11:50
支持原创!
1