C语言:ip地址合法性检查

  • 1. 代码实现
    • 1.1 说明
  • 参考:

1. 代码实现

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>bool judgepcIPAddrIsValid(const char *pcIPAddr)
{int iDots = 0; /* 字符.的个数 */int iSetions = 0; /* pcIPAddr 每一部分总和(0-255)*/if (NULL == pcIPAddr || *pcIPAddr == '.') { /*排除输入参数为NULL, 或者一个字符为'.'的字符串*/return false;}/* 循环取每个字符进行处理 */while (*pcIPAddr) {if (*pcIPAddr == '.') {iDots ++;/* 检查 pcIPAddr 是否合法 */if (iSetions >= 0 && iSetions <= 255) {iSetions = 0;pcIPAddr++;continue;}else{return false;}}else if (*pcIPAddr >= '0' && *pcIPAddr <= '9')    /*判断是不是数字*/{iSetions = iSetions * 10 + (*pcIPAddr - '0'); /*求每一段总和*/} else{return false;}pcIPAddr++;}/* 判断最后一段是否有值 如:1.1.1. */if((*pcIPAddr == '\0') && (*(pcIPAddr-1) == '.')){return false;}/* 判断最后一段是否合法 */if (iSetions >= 0 && iSetions <= 255){if (iDots == 3){return true;}}return false;
}void help()
{printf("Usage: ./test <pcIPAddr str>\n");exit(0);
}int main(int argc, char **argv)
{if (argc != 2) {help();}if (judgepcIPAddrIsValid(argv[1])) {printf("Is Vaild pcIPAddr-->[%s]\n", argv[1]);} else {printf("Is error pcIPAddr-->[%s]\n", argv[1]);}return 0;
}

结果:

[root@glusterfs home]# ./a.out 1.2.3.4
Is Vaild pcIPAddr-->[1.2.3.4]
[root@glusterfs home]# ./a.out 1.
Is error pcIPAddr-->[1.]
[root@glusterfs home]# ./a.out 256.1.2.3
Is error pcIPAddr-->[256.1.2.3]
[root@glusterfs home]#
[root@glusterfs home]# ./a.out 256.1.2.
Is error pcIPAddr-->[256.1.2.]
[root@glusterfs home]#

1.1 说明

说明: 相对于参考博客,其有一处bug,就是缺少最后一个字符为空的判断

[root@glusterfs home]# ./a.out 1.2.3.
Is Vaild pcIPAddr-->[1.2.3.]
[root@glusterfs home]#

参考:

https://www.cnblogs.com/wenqiang/p/5959835.html

C语言:ip地址合法性检查相关推荐

  1. ip地址合法性检查 php,php检查验证IP为有效IP地址函数

    在php5.2之前如果我们要验证IP地址是否有效我们需要使用正则来验证这样只是IP地址是不是合法的,如果要有效我们需要调用ping来操作,但php5.2.0之后,有专门的函数来做这个判断了,下面我来总 ...

  2. C语言 IP地址合法性判断 去除字符串首尾空格

    1.c语言地址合法判断 bool IsIPaddress_standard(const char* pszIPAddr) {if (!pszIPAddr) return false; //若pszIP ...

  3. Python课堂:判定IP地址合法性的三种方法

    IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...

  4. python与shell校验IP地址合法性

    python校验IP地址合法性 执行效果: python代码: [root@yang python]# vi check_ip.py #!/usr/bin/python import os,sys d ...

  5. Python:判定IP地址合法性的三种方法

    IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1255).(02 ...

  6. ip 地址 192.168.1.255 代表( )。_判定IP地址合法性的三种方法

    IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用的确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).( ...

  7. python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法

    IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...

  8. python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...

    html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...

  9. Python | 判定IP地址合法性的四种方法

    你好,我是悦创. IP 合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. 先了解 IPV4 的 IP 格 ...

最新文章

  1. BNN领域开山之作——不得错过的训练二值化神经网络的方法
  2. UA PHYS515A 电磁理论III 静磁学问题1 Maxwell方程与静磁学问题
  3. mysql 锁机制 mvcc_轻松理解MYSQL MVCC 实现机制
  4. 什么情况下会导致@Async异步方法会失效?
  5. [原]排错实战——拯救加载调试符号失败的IDA
  6. 跟一个刚毕业不久的码农聊天后被凡尔赛了
  7. mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区
  8. 0.《硬啃设计模式》- 序、目录、下载方法等
  9. OldSkoolVerb Plus for Mac(算法混响插件)
  10. 【JAVA】每日练习——02
  11. ppt(office365)之表格使用说明
  12. 电子商务中与客户沟通宝典
  13. 琵琶行·并序--白居易
  14. win10系统设置选择电源键按钮功能设置步骤
  15. c语言中num =10,num/100%10 这是什么意思求详细的计算逻辑
  16. java 判断是否回文
  17. 汽车Vin码识别系统,就用OCR识别技术
  18. 在CMD中输入adb命令,提示“‘adb‘ 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
  19. win10 x64下的DNW驱动不完全安装方法
  20. java 生产者消费者模式_聊聊并发(十)生产者消费者模式

热门文章

  1. weui.js java_WEUI控件JS用法
  2. 骏安产业一站式解决企业纳税筹划方面的痛点
  3. 一文全面掌握conda
  4. 自己在framework模块遇到问题分析及修改
  5. table利用colspan实现跨行,table td实现跨半行
  6. 【IEEE_Verilog-12.2】覆写模块参数的值
  7. 关于《香港制造》的零碎记忆
  8. 大一学生HTML期末作业 【html体育羽毛球6页面带注册】学生网页设计作业源码
  9. win10怎么设置外接摄像头_Win10专业版外接摄像头使用不了的处理方法介绍
  10. (附源码)ssm高校运动会管理系统 毕业设计 020419