如何检测ip输入是否正确???? (50分)

  • 主题发起人 主题发起人 xxhsh
  • 开始时间 开始时间
X

xxhsh

Unregistered / Unconfirmed
GUEST, unregistred user!
在edit框中输入ip地址后,如何能知道它是否是正确的ip。
 
刚码了一堆文字,提交出错又要重新录入,简单点写吧。
首先,可以检查一下字串是否由3个小数点分隔开4个正整数,
每个数是否在0到255之间;
其次,还可以检查一下他们是a,b,c,d的那一类,对应的它们
的网络号、主机号是否不为全零或全一。
如果得到肯定的结果,那这个ip可以算作一个合法的ip,或
称为可能被某台计算机使用的ip。
另外,我想不应该有检查这个ip是否在internet上真实存在的
的念头--可操作性太差、费力不讨好。
 
unsigned long inet_addr (
const char FAR * cp
);


用她转换一下
 
if inet_addr(pchar(yourip))=-1 then “ip输入错误(不是正确的点分十进制输入)”

下面这个判断ip地址是否存在
//uses winsock
function testip(IP:string):string;
var
WSAData:TWSADATA;
Addr:DWORD;
begin
WSAStartup(2, WSAData);
Addr:=inet_addr(PChar(IP));
if gethostbyaddr(@Addr,sizeof(Addr),PF_INET)=nil then
result:=''
else result:=ip;
WSACleanup();
end;
 
多人接受答案了。
 
后退
顶部