如何验证用户输入ip地址正确性 ( 积分: 100 )

  • 主题发起人 主题发起人 咪咪富翁
  • 开始时间 开始时间

咪咪富翁

Unregistered / Unconfirmed
GUEST, unregistred user!
如题?
(哎,论坛不能检搜了!!)
 
如题?
(哎,论坛不能检搜了!!)
 
a.b.c.d
a: [1..126,128..233]
b,c,d [0..255]
 
uses WinSock
function IsIpValid(IP: string): Boolean;
begin
if (IP = '') or (inet_addr(PChar(IP)) = -1) then
Result := False
else
Result := True;
end;
 
方法一:
uses WinSock

function IsLegalIP(IP:string):boolean;
begin

if Longword(inet_addr(pchar(IP)))=INADDR_NONE then
begin
result:=false;
exit;
end
else result:=true;

end;
方法二:
function IsLegalIP(IP:string):boolean;
var
i,j,l:integer; ips:array [1..4] of string;
begin

i:=1;
for l:=1 to 4 do ips[l]:='';
for j:=1 to length(ip) do
if ip[j]<>'.' then
begin
if (ip[j]<'0')or(ip[j]>'9') then
begin
//showmessage(ip[j]);
Result:=false;
exit;
end;
ips:=ips+ip[j]
end
else inc(i);

if (i<>4)
or((strtoint(ips[1])>255)or(strtoint(ips[1])<1))
or((strtoint(ips[2])>255)or(strtoint(ips[2])<1))
or((strtoint(ips[3])>255)or(strtoint(ips[3])<1))
or((strtoint(ips[4])>255)or(strtoint(ips[4])<1))
then
Result:= false
else
Result:= true;
 
慢了,跟上面的重复,删了
 
function IsLegalIP(IP:string):boolean;
var i,j,l:integer; ips:array [1..4] of string;
begin

i:=1;
for l:=1 to 4 do ips[l]:='';
for j:=1 to length(ip) do
if ip[j]<>'.' then
begin
if (ip[j]<'0')or(ip[j]>'9') then
begin
//showmessage(ip[j]);
Result:=false;
exit;
end;
ips:=ips+ip[j]
end
else inc(i);

if (i<>4)
or((strtoint(ips[1])>255)or(strtoint(ips[1])<1))
or((strtoint(ips[2])>255)or(strtoint(ips[2])<1))
or((strtoint(ips[3])>255)or(strtoint(ips[3])<1))
or((strtoint(ips[4])>255)or(strtoint(ips[4])<1))
then Result:= false else Result:= true;

end;
 
多人接受答案了。
 
后退
顶部