C语言:ip地址合法性检查
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地址合法性检查相关推荐
- ip地址合法性检查 php,php检查验证IP为有效IP地址函数
在php5.2之前如果我们要验证IP地址是否有效我们需要使用正则来验证这样只是IP地址是不是合法的,如果要有效我们需要调用ping来操作,但php5.2.0之后,有专门的函数来做这个判断了,下面我来总 ...
- C语言 IP地址合法性判断 去除字符串首尾空格
1.c语言地址合法判断 bool IsIPaddress_standard(const char* pszIPAddr) {if (!pszIPAddr) return false; //若pszIP ...
- Python课堂:判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...
- python与shell校验IP地址合法性
python校验IP地址合法性 执行效果: python代码: [root@yang python]# vi check_ip.py #!/usr/bin/python import os,sys d ...
- Python:判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1255).(02 ...
- ip 地址 192.168.1.255 代表( )。_判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用的确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).( ...
- python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
IP IP合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. IPv4的ip地址格式:(1~255).(0 ...
- python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...
html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...
- Python | 判定IP地址合法性的四种方法
你好,我是悦创. IP 合法性校验是开发中非常常用的,看起来很简单的判断,作用确很大,写起来比较容易出错,今天我们来总结一下,看一下3种常用的IP地址合法性校验的方法. 先了解 IPV4 的 IP 格 ...
最新文章
- BNN领域开山之作——不得错过的训练二值化神经网络的方法
- UA PHYS515A 电磁理论III 静磁学问题1 Maxwell方程与静磁学问题
- mysql 锁机制 mvcc_轻松理解MYSQL MVCC 实现机制
- 什么情况下会导致@Async异步方法会失效?
- [原]排错实战——拯救加载调试符号失败的IDA
- 跟一个刚毕业不久的码农聊天后被凡尔赛了
- mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区
- 0.《硬啃设计模式》- 序、目录、下载方法等
- OldSkoolVerb Plus for Mac(算法混响插件)
- 【JAVA】每日练习——02
- ppt(office365)之表格使用说明
- 电子商务中与客户沟通宝典
- 琵琶行·并序--白居易
- win10系统设置选择电源键按钮功能设置步骤
- c语言中num =10,num/100%10 这是什么意思求详细的计算逻辑
- java 判断是否回文
- 汽车Vin码识别系统,就用OCR识别技术
- 在CMD中输入adb命令,提示“‘adb‘ 不是内部或外部命令,也不是可运行程序或批处理文件”的解决方法
- win10 x64下的DNW驱动不完全安装方法
- java 生产者消费者模式_聊聊并发(十)生产者消费者模式
热门文章
- weui.js java_WEUI控件JS用法
- 骏安产业一站式解决企业纳税筹划方面的痛点
- 一文全面掌握conda
- 自己在framework模块遇到问题分析及修改
- table利用colspan实现跨行,table td实现跨半行
- 【IEEE_Verilog-12.2】覆写模块参数的值
- 关于《香港制造》的零碎记忆
- 大一学生HTML期末作业 【html体育羽毛球6页面带注册】学生网页设计作业源码
- win10怎么设置外接摄像头_Win10专业版外接摄像头使用不了的处理方法介绍
- (附源码)ssm高校运动会管理系统 毕业设计 020419