如何判断一个网址是不是有效的?(10分)

  • 主题发起人 主题发起人 moon_qiu
  • 开始时间 开始时间
M

moon_qiu

Unregistered / Unconfirmed
GUEST, unregistred user!
网址的形式多种,如何利用程序判断她的正确性
请附上代码,谢谢
 
估计只能PING一下,看返回值,
 
检测URL地址的有效性

function GetURLs(line: string): TStringList;
var
i : integer;
posURL,
s : string;
begin
Result := TStringList.Create;
s := line;
i := 0;
if Length(s) < 5 then exit;
repeat
i := Pos(' ', s);
if i > 0 then
begin
posURL := Copy(s, 1, i-1);
s := Copy(s, i+1, Length(s)-i);
if isURL(posURL) then
Result.Add(posURL);
end else
begin
PosURL := s;
if isURL(posURL) then
Result.Add(posURL);
Break;
end;
until Length(s) = 0;
if Result.Count = 0 then
begin
Result.Free;
Result := nil;
end;
end;

function IsURL(s: string): Boolean;
var
i: integer;
begin
Result := False;
if Length(s) < 5 then exit;
if (s[Length(s)] = '.') or (Pos('..', s) > 0) then exit;
for i := 1 to Length(s) do
if (Ord(s) < 33) or (Ord(s) > 126) then exit;
if (Pos('www.',LowerCase(s)) = 1) or (Pos('news:', LowerCase(s)) = 1) and
(Length(s) > 6) then
begin
Result := True;
Exit;
end;
if (Length(s) > 12) or (Pos('mailto:', LowerCase(s)) = 1) and
(Pos('@', s) > 1) and (Pos('.', s) > 4) and (Pos('.', s) > (Pos('@', s) +1)) then
begin
Result := True;
Exit;
end;
if (Pos('http:://', LowerCase(s)) > 0) or (Pos('ftp://', LowerCase(s)) > 0) and
(Length(s) > 10) and (Pos('.', s) > 7) then
begin
Result := True;
Exit;
end;
end;

 
这个好象只是看表面啊,不知道你问的是不是判断这个地址是否能够 connect?|
 
极为简单的方法,用ClientSocket去连接目标计算机的80端口如果成功就说明有用,
否则不通!
 
接受答案了.
 
后退
顶部