随手写了一个 function IsValidIP(Str: string): Boolean; var i, PartCount {用多少段,以点号分开}: Integer; Part: string; begin PartCount := 0; while Str <> '' do begin i := Pos('.', Str); if i = 0 then begin Part := Str; Str := ''; end else begin Part := Copy(Str, 1, i - 1); Delete(Str, 1, i); end; //IP分段必须是[0,255]的整数 if not TryStrToInt(Part, i) or (i < 0) or (i > 255) then begin Result := False; Exit; end; Inc(PartCount); end; Result := PartCount = 4; //必须要有4段 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; 你也可以找IP地址输入的控件,如同windows里修改网卡IP地址一样的。这样显得界面更新友好一些,我以前用过只是时间太久找不到了~~~
http://www.baidu.com/s?ie=gb2312&bs=delphi+%BA%CF%B7%A8ip&sr=&z=&cl=3&f=8&wd=%BA%CF%B7%A8ip+delphi&ct=0
没有找到呢
http://topic.csdn.net/t/20040916/14/3378908.html
function IsValidIP(Str: string): Boolean;
var
i, PartCount {用多少段,以点号分开}: Integer;
Part: string;
begin
PartCount := 0;
while Str <> '' do
begin
i := Pos('.', Str);
if i = 0 then
begin
Part := Str;
Str := '';
end
else
begin
Part := Copy(Str, 1, i - 1);
Delete(Str, 1, i);
end; //IP分段必须是[0,255]的整数
if not TryStrToInt(Part, i) or (i < 0) or (i > 255) then
begin
Result := False;
Exit;
end;
Inc(PartCount);
end; Result := PartCount = 4; //必须要有4段
end;
Regex: TPerlRegEx;
ResultString: string;Regex := TPerlRegEx.Create(nil);
Regex.RegEx := '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b';
Regex.Options := [];
Regex.Subject := SubjectString;
Regex.Replacement := '';
Regex.ReplaceAll;
ResultString := Regex.Subject;
begin
if Longword(inet_addr(pchar(IP)))=INADDR_NONE then
begin
result:=false;
exit;
end
else result:=true;
end;
你也可以找IP地址输入的控件,如同windows里修改网卡IP地址一样的。这样显得界面更新友好一些,我以前用过只是时间太久找不到了~~~