为什么以下函数在win2000下运行正常在win98就没有结果了???很高手指教(50分)

  • 主题发起人 主题发起人 duducat
  • 开始时间 开始时间
D

duducat

Unregistered / Unconfirmed
GUEST, unregistred user!
//域名解析函数
function DNSToIP(const Host:string): string;
var
phe : PHostEnt;
InetAddr : Dword;
GInitData : TWSADATA;
begin
try
//初始化动态连接库winsock.dll
WSAStartup($101, GInitData);
InetAddr:=inet_addr(Pchar(Host));
try
phe:=GetHostByName(Pchar(Host));
InetAddr:=longint(plongint(phe^.h_addr_list^)^);
Result:=Strpas(inet_ntoa(TInaddr(InetAddr)));
except
Result:='';
end;
finally
WSACleanup;
end;
end;
 
下面这个我试过可以的,好像和你的差不多。
function GetIP(Name: string): string;
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
GInitData: TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
try
phe := GetHostByName(pchar(Name));
pptr := PaPInAddr(Phe^.h_addr_list);
result := StrPas(inet_ntoa(pptr^[0]^));
except
result := 'Can not get the IP address.';
end;
WSACleanup;
end;
 
不好意思,98下没有试过。
 
to duckstar
你函数也不行啦!!!!!哎………………有会的没有??救命啦
 
哪个函数不行了?
 
to NowCan
当然是我的function DNSToIP(const Host:string): string;
在瘟酒吧下面比如202.189.1.222 这个IP数据以后返回来是空格
而在win2000下面则是原IP 202.189.1.222 返回,知道这是什么原因嘛?高手!!请指教
 
uses winsock后我使用Delphi5编译后,你的程序运行正常呀。
而且很不过!
 
to yzhshi
我用win98和Delphi6.0和第二升级包编译的,在win98下面运行不行哟!出现如下问题:
如202.189.1.222 这个IP数据输入函数返回来是空格
而在win2000下面则是原IP 202.189.1.222 返回
 
我的绝对可以呀!我分别在Windows me和Windows 98下测试的,使用D5在me下编译的。
我们是通过网关上网的,设置了网关和dns。
估计和你安装的协议有关,不过我安装什么特殊协议呀。
tcp/ip+文件共享而已。
 
动态链接库不同的问题造成的!
 
不应该是,我觉得网络协议的安装和实际网路的结构可能是主要原因。
 
Delphi里有一个类可直接获得IP地址,可看一看!
 
楼上请明示,谢谢
 
to all 看来是协议没有安装正确!
 
接受答案了.
 
后退
顶部