整形型的ip地址,怎么转化为字符串形式的。(50分)

  • 主题发起人 主题发起人 anzhiping
  • 开始时间 开始时间
f1:= (ip and $0ff);
f2:= (ip and $0ff00)/$100;
f3:= (ip and $0ff0000)/$10000;
f4:= (ip and $off000000)/$1000000;
str:= format('%d.%d.%d.%d',[f1,f2,f3,f4]);
 
ip := Request.host;

Here ip is a string type, such as '170,0,0,0'
 
先说说你的整型IP是怎么得到的?
什么个模样?
 
实际上这样就可以了.

f1:= (ip and $0ff);
f2:= (ip and $0ff00) div $100;
f3:= (ip and $0ff0000) div $10000;
f4:= (ip and $off000000) div $1000000;
str:= format('%d.%d.%d.%d',[f4,f3,f2,f1]);
只是不知道有没有现成的函数.
 
IP 怎么可能是整形的呢?我就不懂了?
你列一个给我看看?
 
给你一个函数,改一下
function getcomputerIP:string;
var
HostName:array[0..255] of char;
WSAData:TWSAData;
MyHost:PHostEnt;
begin
result:='0.0.0.0';
WSAStartUp(2,WSAData);
GetHostName(@HostName[1],sizeof(HostName));
MyHost:=GetHostbyname(@hostname[1]);
if myhost<>nil then
result:=format('%d.%d.%d.%d',[ord(myhost.h_addr^[0]),ord(myhost.h_addr^[1]),ord(myhost.h_addr^[2]),ord(myhost.h_addr^[3]));
end;
 
ip可以是整形的.
不信?你在ie中输入123456789看看
解析的ip地址就是7.91.205.21
 
后退
顶部