如何判断地址输入的是域名还是IP地址???(100分)

  • 主题发起人 主题发起人 lfp
  • 开始时间 开始时间
L

lfp

Unregistered / Unconfirmed
GUEST, unregistred user!
如何判断地址输入的是域名还是IP地址???
 
反正都是要用IP地址的, 直接用GetHostByName吧
 
解析的时候不会出错吗?
 
没问题,其实IE本身也是不能区分IP和计算机名的。你输入一个IP,他首先找IP,然后就找地址了。
如www.169.169.169.169.net什么的。

uses
WinSock;

function GetIPByName(AName: string): string;
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array[0..63] of char;
I: Integer;
GInitData: TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
StrPCopy(Buffer, AName);
phe := GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do
begin
Result := StrPas(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
 
你的意思是,首先安IP地址去连接,不行再按域名解析???
 
其实就是一个东西嘛。。。

不过你可以根据IP地址的规则,例如全数字,4段式或者1段式进行判断。。[:)]
 
IE是这样做的,如果输入符合IP地址规则,他就先按照IP去解析。
=====当然以上纯属猜测,没有真凭实据======
 
既然这样,我想请教域名的最后一位没有数字的吧?
如:WWW。WWW。WWW。123???
 
WWW。WWW。WWW。123 我没有见过这种格式。。。

标准的IP地址应该是XXX.XXX.XXX.XXX(X是数字),或者是XXXXXXX的样子的。。
 
看来是没有什么好办法啦。呵呵
 
后退
顶部