有没有现成的函数将IP地址转化为数字?给出来马上给分!
解决方案 »
- Delphi中查看Paradox表结构类型
- 在Access中 提示 记录过大?
- 大家好,我是初学者,能不能推荐几本好一些的书籍啊,谢谢
- windows路由NAT功能中 远程访问客户端的获取办法
- 能不能在PDF控件中实现字符串的搜索,如在文本框里输入'aaaa',然后在pdf中将所有的'aaaa'选中
- 怎么用WebService 上传 下载文件
- Exel文件的行数!!!高手快来啊!!!急死我了!!!!
- 请教各位!哪里有Delphi 8.0 下载的地址?
- 我在listview里动态插入10000个item,插入的过程需要等待很长时间而且屏幕显示的半拉克机,就象死机一样!
- 程序打包及调用exe文件?
- 求版主别删除!www.new7wonders.com/ 距离世界七大奇迹选举结束日子不多了,至今为止参加投票的中国人只占总投票人数的5.9%,排名第5,这
- zbird 进来推荐几本好书!!!
使用 WinSock 单元;
过程如下:
function HostToIP(Name: string; var Ip: string): Boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);
try
gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then begin
IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result := True;
end
else
Result := False;
end
else
Result := False
else begin
Result := False;
end;
finally
WSACleanup;
end
end; 测试时请在在线状态。测试代码:
var
IP: string;
DNS: string;
begin
DNS := InputBox('输入DNS域名', '主机名称:', '');
if HostToIp(DNS, IP) then showmessage(IP);
end;
作者:Latfi Baran我测试Kingron给出的用法时,hostEnt老是=nil。
后来我在用gethostbyname(...)之前,加入WSAStartup(...),终于一切OK。
Winsock单元中没有getaddressbyname()
过程如下:
function IPAddrToName(IPAddr : String): String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt<>nil then
begin
result:=StrPas(Hostent^.h_name)
end
else
begin
result:='';
end;
end;
测试时请在在线状态。测试代码:
var
Name: string;
begin
Name := InputBox('输入对方主机IP', '主机IP地址:', '');
showmessage(IpAddrToName(Name));end;
作者:Latfi Baran
var s:String;
i:Integer;
ResList:TStrings;
begin
ResList:=TStringList.Create;
s:=Source;
i:=Pos(SplStr,S);
while i<> 0 do
begin
ResList.Add(Copy(S,1,i-1));
S:=Copy(S,i+1,Length(S)-i);
i:=Pos(SplStr,S);
end;
ResList.Add(S);
Result:=ResList;
end;function GetFormatIP(IP:string):string;
var StrsIP: TStrings;
i:Integer;
begin
StrsIP := StrToStrs(IP,'.');
Result := '';
for i := 0 to 2 do
Result := Result + Copy('000',1,3-Length(StrsIP[i]))+StrsIP[i] + '.';
Result:=Result+copy('000',1,3-Length(StrsIP[3]))+StrsIP[3];
Result := Copy(Result,1,15);
StrsIP.Free;
end;