| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 270 人关注过本帖
标题:获取IP地址,在XP中运行正常可以正常读取拨号IP,在WIN7中却无法读拨号IP而 ...
只看楼主 收藏
rogersgb
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2016-2-3
结帖率:47.37%
  问题点数:0  回复次数:0   
获取IP地址,在XP中运行正常可以正常读取拨号IP,在WIN7中却无法读拨号IP而读取本地网卡IP,为什么?
//获取IP地址
Function GetLocalIp(InternetIP:boolean):String;
   type
     TaPInAddr = Array[0..10] of PInAddr;
     PaPInAddr = ^TaPInAddr;
   var
     phe: PHostEnt;
     pptr: PaPInAddr;
     Buffer: Array[0..63] of Char;
     I: Integer;
     GInitData: TWSAData;
     IP: String;
begin
     Screen.Cursor := crHourGlass;
     try
       WSAStartup($101, GInitData);
       IP:='0.0.0.0';
       GetHostName(Buffer, SizeOf(Buffer));
       phe := GetHostByName(buffer);
       if phe = nil then
       begin
         ShowMessage(IP);
         Result:=IP;
         Exit;
       end;
       pPtr := PaPInAddr(phe^.h_addr_list);
       if InternetIP then
         begin
           I := 0;
           while pPtr^[I] <> nil do
             begin
               IP := inet_ntoa(pptr^[I]^);
               Inc(I);
             end;
         end
       else
         IP := inet_ntoa(pptr^[0]^);
       WSACleanup;
       Result:=IP;//如果上网则为上网ip否则是网卡ip
     finally
       Screen.Cursor := crDefault;
     end;
end;

//Showmessage(GetLocalIp(true));

[此贴子已经被作者于2017-10-10 13:10编辑过]

2017-10-10 12:59







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

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