免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7290 | 回复: 15
打印 上一主题 下一主题

[函数] 有没有那个函数能够检测一个字符串是不是一个合法的IP地址?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-19 17:10 |只看该作者 |倒序浏览
没有那个函数能够检测一个字符串是不是一个合法的IP地址???!!

论坛徽章:
0
2 [报告]
发表于 2005-09-19 17:12 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

这个函数好像可以,但是最近发现这个函数很多不是IP的检测不出来
if (!~inet_addr(chIP) //IP check
{
  printf("no a IP\n";
}

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2005-09-19 17:14 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

Perl?

论坛徽章:
0
4 [报告]
发表于 2005-09-19 20:58 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

在C专区提问的,当然是用C语言啊

论坛徽章:
0
5 [报告]
发表于 2005-09-19 21:07 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

有regex.h的库能够用,可是怎么用啊?
就是用来匹配一个字符串是否是合法的ip地址

论坛徽章:
0
6 [报告]
发表于 2005-09-19 22:18 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

自己写一个!



  1. static bool IsAddress( const char *ipstr )
  2. {
  3.     int n;
  4.     int a1, a2, a3, a4;
  5.    
  6.     n=sscanf( ipstr, "%d.%d.%d.%d", &a1, &a2, &a3, &a4 );
  7.    
  8.     if( n<4 || ( ( a1<0 || a1>;255 ) || (a2<0 || a2>;255 ) || (a3<0 || a3>;255 )
  9.         || (a4<0 || a4>;255 ) ) )
  10.     {
  11.         return( FALSE );
  12.     } else {
  13.         return( TRUE );
  14.     }
  15. }
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-09-19 22:20 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

sunlan 写的有点问题.

应该先判断有几个"." 点.
否则就会出问题.

[quote]原帖由 "BigMonkey"]没有那个函数能够检测一个字符串是不是一个合法的IP地址???!![/quote 发表:

论坛徽章:
0
8 [报告]
发表于 2005-09-19 22:22 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

mq110考虑得很周全啊
strlen();
这回可以了?
255.255.255.255
一共是15个
if(strlen(?)>;15||strlen(?)<7)

论坛徽章:
0
9 [报告]
发表于 2005-09-19 22:37 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

[quote]原帖由 "mq110"][/quote 发表:


这样总可以吧?



  1. unsigned int count_char( const char *buf, char chr )
  2. {
  3.         char *ptr;
  4.         unsigned int n;

  5.         ptr=buf;
  6.         n=0;

  7.         for( ; ; ) {
  8.                 ptr=strchr(ptr,chr);
  9.                 if( ptr==NULL )
  10.                         break;
  11.                 else {
  12.                         n++;
  13.                         ptr++;
  14.                 }
  15.         }
  16.         return(n);
  17. }

  18. bool IsAddress( const char *ipstr )
  19. {
  20.     int n;
  21.     int a1, a2, a3, a4;
  22.    
  23.     if( count_char( ipstr, '.' ) != 3 )
  24.         return( FALSE );

  25.     n=sscanf( ipstr, "%d.%d.%d.%d", &a1, &a2, &a3, &a4 );
  26.    
  27.     if( n<4 || ( ( a1<0 || a1>;255 ) || (a2<0 || a2>;255 ) || (a3<0 || a3>;255 )
  28.         || (a4<0 || a4>;255 ) ) )
  29.     {
  30.         return( FALSE );
  31.     } else {
  32.         return( TRUE );
  33.     }
  34. }
复制代码

论坛徽章:
0
10 [报告]
发表于 2005-09-20 10:19 |只看该作者

有没有那个函数能够检测一个字符串是不是一个合法的IP地址??

用正则表达式可以判断
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP