| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1270 人关注过本帖
标题:请问如果通过局域网计算机名获取该计算机的ip
只看楼主 加入收藏
dreamycj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-2-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
请问如果通过局域网计算机名获取该计算机的ip
我用的是vfp9..sp1..麻烦大家帮忙看有没有解决的办法 .
请问如果通过局域网计算机名获取该计算机的ip
搜索更多相关主题的帖子: 获取 计算机 局域网 
2010-02-15 11:29
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:20 
用Windows API调用实现域名解析
DECLARE INTEGER WSACleanup IN ws2_32
DECLARE STRING inet_ntoa IN ws2_32 INTEGER in_addr
DECLARE INTEGER gethostbyname IN ws2_32 STRING host
DECLARE INTEGER WSAStartup IN ws2_32 INTEGER wVerRq, STRING lpWSAData
DECLARE RtlMoveMemory IN kernel32 As CopyMemory;
    STRING @Dest, INTEGER Src, INTEGER nLength

IF WSAStartup(0x202, Repli(Chr(0),512)) = 0  && initiates use of WS2_32.DLL
    ?getip('www.')
    = WSACleanup()
ENDIF

FUNCTION GetIP(cServer)
    #DEFINE HOSTENT_SIZE 16
    LOCAL nStruct, nSize, cBuffer, nAddr, cIP
    nStruct = gethostbyname(cServer)
    IF nStruct = 0
        RETURN '0.0.0.0'
    ENDIF

    cBuffer = Repli(Chr(0), HOSTENT_SIZE)
    cIP = Repli(Chr(0), 4)

    = CopyMemory(@cBuffer, nStruct, HOSTENT_SIZE)
    = CopyMemory(@cIP, buf2dword(SUBS(cBuffer,13,4)),4)
    = CopyMemory(@cIP, buf2dword(cIP),4)
RETURN inet_ntoa(buf2dword(cIP))

FUNCTION buf2dword(lcBuffer)
RETURN Asc(SUBSTR(lcBuffer, 1,1)) + ;
    Bitlshift(Asc(SUBS(lcBuffer, 2,1)),8) +;
    Bitlshift(Asc(SUBS(lcBuffer, 3,1)),16) +;
    Bitlshift(Asc(SUBS(lcBuffer, 4,1)),24)

★★★★★为人民服务★★★★★
2010-02-15 21:28
zx1001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-3-11
收藏
得分:0 
了解咯·
  谢谢
2010-03-11 12:26
快速回复:请问如果通过局域网计算机名获取该计算机的ip
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040859 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved