改进了一些代码
能自动判断ip地址了
以前是见到数字就抓
现在可以判断是不是正确的ip地址
代码来自csdn上的
txj_killer(流浪的天行)
实话说 他的代码我看不懂
int isValIP(const char* ip)
{
static char tab[24][11] = {{1,2,3,4,4,4,4,4,4,4,-1},
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5},
{4,4,4,4,4,4,4,4,4,4,5},
{4,4,4,4,4,6,1,1,1,1,5},
{1,1,1,1,1,1,1,1,1,1,5},
{7,8,9,10,10,10,10,10,10,10,-1},
{1,1,1,1,1,1,-1,-1,-1,-1,5},
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11},
{10,10,10,10,10,10,10,10,10,10,11},
{10,10,10,10,10,12,7,7,7,7,11},
{7,7,7,7,7,7,7,7,7,7,11},
{13,14,15,16,16,16,16,16,16,16,-1},
{7,7,7,7,7,7,-1,-1,-1,-1,11},
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17},
{16,16,16,16,16,16,16,16,16,16,17},
{16,16,16,16,16,18,13,13,13,13,17},
{13,13,13,13,13,13,13,13,13,13,17},
{19,20,21,22,22,22,22,22,22,22,-1},
{13,13,13,13,13,13,-1,-1,-1,-1,17},
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},
{22,22,22,22,22,22,22,22,22,22,-1},
{22,22,22,22,22,23,19,19,19,19,-1},
{19,19,19,19,19,19,19,19,19,19,-1},
{19,19,19,19,19,19,-1,-1,-1,-1,-1}};
if(ip != NULL)
{
int stat = 0;
for(const char* tmp = ip; *tmp != ‘\0′ && stat >= 0; ++tmp)
{
if(’0′ <= *tmp && *tmp <= ’9′)
stat = tab[stat][*tmp - '0'];
else if(*tmp == ‘.’)
stat = tab[stat][10];
else
stat = -1;
}
if(stat >= 19 && stat <= 23)
return 1;
}
return 0;
}
回复人: txj_killer(流浪的天行) ( ) 信誉:100 2005-12-30 17:20:16 得分: 0
我就是写的正则表达式,然后转换为有限自动机,具体算法参见形式语言与自动机理论、编译原理等书籍。
本来打算用正则表达式的
但是c++中要引入外面的库文件
所以还是打算自己判断算了
碰巧在csdn上看到有讨论如何正确判断ip地址
http://community.csdn.net/Expert/TopicView.asp?id=4490851
就copy了一段[razz]
请查看新版本 {2008.10.23}

[smile]你好bborn
我想做个截取网页电话号码和联系方式的程序。
要用到屏幕取词。
能给些指导吗?
或者能否告诉我如何调用nhw32.dll.
hzs_1002 at hotmail.com
我是想把鼠标移到ie或其他程序上,就自动获得说点击的某些字符串。