求助pb 12.5如何获取IP地址

axwst88 2012-10-12 07:09:27
PB 利用PBWS32.DLL获取IP地址在12.5中得出来的结果不准确,经测试在PB12.5 中PBWS32.DLL的gethost()返回的主机名,而非IP。哪位能提供较详细的例子供参考。
...全文
3889 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京大丸子 2013-05-16
  • 打赏
  • 举报
回复
引用 5 楼 herolion2010 的回复:
可用internetresult 和inet 来打开网页http://www.ip138.com/然后把获取的IP解析出来即可 //本函数需要 internetresult n_cst_internet integer li_f,flen,li_rc string ls_result,ls_ip inet linet_main n_cst_internet luo_data linet_main = CREATE inet luo_data = CREATE n_cst_internet SetPointer(HourGlass!) li_rc =linet_main.GetURL('http://www.ip38.com', luo_data) SetPointer(Arrow!) ls_result = luo_data.is_data ls_ip=Mid(ls_result,Pos(ls_result,'您的本机IP地址:',1)+14,Pos(ls_result,'  来自',1) - Pos(ls_result,'您的本机IP地址:',1) - 16) return trim(ls_ip) // DESTROY luo_data DESTROY linet_main
请问里面的 ls_result = luo_data.is_data is_data是怎么定义的???
北京大丸子 2013-05-16
  • 打赏
  • 举报
回复
引用 1 楼 lzp_lrp 的回复:
1.可以用run命令ipconfig -all > c:\1.txt 然后从1.txt中提取出想要的结果 2.可以换个dll用GetNet.dll //得到本机IP地址 Function string GetLocalIp() Library "GetNet.dll" alias for "GetLocalIp;Ansi"
这个得到的是局域网ip吧?外网ip得不到
川流不息100 2013-05-16
  • 打赏
  • 举报
回复
如果连的oracle数据库,oracle就可以做了。一个函数的问题,相当简单
再来壹串 2013-05-10
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/392210222.html 创建存储过程然后直接调用
HoneyBJH 2013-04-28
  • 打赏
  • 举报
回复
哪位大侠给予些技术帮助!首先谢谢! pb9.0下获取计算机名、本地IP地址、MAC地址,在pb11.5和12.5下,都失效了。。。。。。。
WorldMobile 2012-10-18
  • 打赏
  • 举报
回复
winsock可以实现
//


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_6.text=ls_hostname
sle_7.text=ls_ipaddress


getnet.dll可以实现
axwst88 2012-10-16
  • 打赏
  • 举报
回复
楼上,如果是在C/S方式下获取本机IP地址呢?
axwst88 2012-10-14
  • 打赏
  • 举报
回复
二楼给个详细的例子可以吗
axwst88 2012-10-14
  • 打赏
  • 举报
回复
我用的是破解版
herolion2010 2012-10-14
  • 打赏
  • 举报
回复
可用internetresult 和inet 来打开网页http://www.ip138.com/然后把获取的IP解析出来即可

//本函数需要 internetresult n_cst_internet

integer li_f,flen,li_rc
string ls_result,ls_ip

inet linet_main
n_cst_internet luo_data
linet_main = CREATE inet
luo_data = CREATE n_cst_internet
SetPointer(HourGlass!)
li_rc =linet_main.GetURL('http://www.ip38.com', luo_data)
SetPointer(Arrow!)
ls_result = luo_data.is_data

ls_ip=Mid(ls_result,Pos(ls_result,'您的本机IP地址:',1)+14,Pos(ls_result,'  来自',1) - Pos(ls_result,'您的本机IP地址:',1) - 16)
return trim(ls_ip)
//
DESTROY luo_data
DESTROY linet_main
id_luqiang 2012-10-12
  • 打赏
  • 举报
回复
兄弟有12.5的正版?还是破解版 给个地址下载
WorldMobile 2012-10-12
  • 打赏
  • 举报
回复
1.可以用run命令ipconfig -all > c:\1.txt 然后从1.txt中提取出想要的结果


2.可以换个dll用GetNet.dll
//得到本机IP地址
Function string GetLocalIp() Library "GetNet.dll" alias for "GetLocalIp;Ansi"

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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