博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言检查ip是否合法
阅读量:2180 次
发布时间:2019-05-01

本文共 1692 字,大约阅读时间需要 5 分钟。

在工作当中我们经常会遇到这种问题:判断一个输入的字符串是否为合法的IP地址,下面是一个测试小程序:

1 #include 
2 #include
3 #include
4 #include
5 6 bool isVaildIp(const char *ip) 7 { 8 int dots = 0; /*字符.的个数*/ 9 int setions = 0; /*ip每一部分总和(0-255)*/ 10 11 if (NULL == ip || *ip == '.') { /*排除输入参数为NULL, 或者一个字符为'.'的字符串*/ 12 return false;13 } 14 15 while (*ip) {16 17 if (*ip == '.') {18 dots ++; 19 if (setions >= 0 && setions <= 255) { /*检查ip是否合法*/20 setions = 0;21 ip++;22 continue;23 } 24 return false;25 } 26 else if (*ip >= '0' && *ip <= '9') { /*判断是不是数字*/27 setions = setions * 10 + (*ip - '0'); /*求每一段总和*/28 } else 29 return false;30 ip++; 31 } 32    /*判断IP最后一段是否合法*/ 33 if (setions >= 0 && setions <= 255) {34 if (dots == 3) {35 return true;36 } 37 } 38 39 return false;40 }41 42 void help()43 {44 printf("Usage: ./test
\n");45 exit(0);46 }47 48 int main(int argc, char **argv)49 {50 if (argc != 2) {51 help(); 52 } 53 54 if (isVaildIp(argv[1])) {55 printf("Is Vaild Ip-->[%s]\n", argv[1]);56 } else {57 printf("Is Invalid Ip-->[%s]\n", argv[1]);58 } 59 60 return 0;61 }

运行结果:

1 [root@localhost isvildip]# ./test 192.168.1.12 Is Vaild Ip-->[192.168.1.1]3 [root@localhost isvildip]# ./test 192.168.1.2564 Is Invalid Ip-->[192.168.1.256]5 [root@localhost isvildip]#

 

转载于:https://www.cnblogs.com/wenqiang/p/5959835.html

你可能感兴趣的文章
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>