【C语言】从字符串中提取IP地址最简洁的方法
首先先看一下判断字符串是否为IP地址(IPv4地址是否合法)
的方法:
(【C语言】判断字符串是否为IP地址(IPv4地址是否合法))
#include <stdio.h>
#include <string.h>
#include <stdbool.h>/*** @brief 判断IPv4地址是否合法* @param ip: 待校验的ip地址* @return true: 校验成功 false:校验失败(IP地址不合法)* @author PJW*/
bool IPv4_verify(char *ip) {int a,b,c,d;char t;if (4 == sscanf(ip,"%d.%d.%d.%d%c",&a,&b,&c,&d,&t)){if (0<=a && a<=255&& 0<=b && b<=255&& 0<=c && c<=255&& 0<=d && d<=255) {return true;}}return false;
}void main() {char ip[50]="192.1.2.3.4567";// char ip[50]="192.1.2.3";bool res = IPv4_verify(ip);if(true == res){printf("[%s] is valid IPv4\n", ip);}else{printf("[%s] is invalid IPv4\n", ip);}
}
执行结果:
然后根据以上方法,修改为从一个复杂的字符串中提取出IPv4
地址:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>/*** @brief IPv4地址提取* @param str: 待提取的字符串* @param len: 待提取的字符串长度* @param out_ip: 提取到的 IPv4 地址* @return true: 提取成功 * false:提取失败(IP地址不存在或不合法)* @author PJW* @date 2021/07/01*/
bool IPv4_GET(char *str,int len,char *out_ip) {int a,b,c,d;char *p = str;for(int i=0;i<len;i++){if((*p >= '0')&&(*p <= '9')){if(4 == sscanf(p,"%d.%d.%d.%d",&a,&b,&c,&d)){if (0<=a && a<=255&& 0<=b && b<=255&& 0<=c && c<=255&& 0<=d && d<=255) {sprintf(out_ip,"%d.%d.%d.%d\n",a,b,c,d);// printf("IPv4: %d.%d.%d.%d\n",a,b,c,d); return true;}}}p++;}return false;
}void main() {char str[50]="+QIACT: 1,1,1,\"10.5.110.126\"";char ip[16]={0};bool res = IPv4_GET(str, strlen(str), ip);if(true == res){printf("Get a valid IPv4 address: %s\n", ip);}else{printf("No valid IPv4 address was obtained\n");}
}
执行结果:
【C语言】从字符串中提取IP地址最简洁的方法相关推荐
- 字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...
c语言中的单引号和双引号可是有很大区别的,使用之前一定要了解他们之间到底有什么不同,下面小编就给大家详细的介绍一下吧,对此还不是很了解的朋友可以过来参考下 问题:从c++文件中将std:string转 ...
- 字符串中提取IP地址
// 带端口号的IP地址 QStringList getIpAddressAndPort(const QString & strText) {QStringList strList;QRegE ...
- C语言从一段字符串中提取IP地址的方法
1. 需求 当前待解析字符串格式为: +CIFSR:STAIP,<Station IP address> +CIFSR:STAMAC,<Station MAC address> ...
- Java使用正则表达式从字符串中提取 IP 地址
import java.util.regex.Matcher; import java.util.regex.Pattern;public class ExtractIP {public static ...
- 从字符串中提取IP子串(C语言)
1 目标 ① 从字符串中提取IP子串 ② 验证IP字符串是否合法(IPV4) 2 代码 ① ip地址提取 /*** @brief : IPv4地址提取* @param in_ip : 待提取字符串* ...
- 使用 Python 从文件中提取 IP 地址
让我们看看如何使用 Python 从文件中提取 IP 地址. 算法 : 为正则表达式导入 re 模块. 使用 open() 函数打开文件. 读取文件中的所有行并将它们存储在列表中. 声明 IP 地址的 ...
- 字符串中查找IP地址的正则表达式
字符串中查找IP地址的正则表达式: IP地址:(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[ ...
- 如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址
作为系统管理员,您需要密切关注访问您网站的 IP 地址.服务器日志是此类信息的有用来源.它们包含您的服务器收到的每个请求的 IP 地址.日期时间.请求类型.URL.服务器响应等.在本文中,我们将了解如 ...
- python提取一段字符串中的ip地址
代码如下: #!/usr/bin/env python3 # -*- coding:utf-8 -*-import re import osip_str = os.popen('cat /root/b ...
最新文章
- python格式化% 和 format
- MIT课程笔记①丨因果关系定义及潜在结果分析框架
- struts2教程(2)--配置
- 字符串常量前面的L的作用
- session 原理
- js中的数据类型分为两大类分别是什么_数据类型有这么重要吗?
- practice:在win2008R2上使用(NLB)网络负载均衡
- android项目模块导入eclipse编译报错,android环信demo导入eclipse编译出错
- keras利用flow_from_directoryt自己构建数据集
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_18maven的java工程取mysql数据库...
- C#动态创建和动态使用程序集、类、方法、字段等(二)
- 如何使用摸瓜快速查手机apk加壳
- 高等数学第七版总结(同济大学版)
- C++之常用集合(总结)
- 嵌入式:ARM系列处理器详解与性能对比
- 使用嵌套循环打印图形
- arm linux 内核崩溃,用sysrq-trigger实现ARM Linux一键内核崩溃、一键关机、一键dump信息等...
- 【B站弹幕数据分析】B站独家付费番剧鬼灭之刃的前12集的弹幕数据分析
- 计算机无法进入增值税认证平台,增值税勾选认证平台无法进入是什么原因?其他网页都能打开,就这个网页打不开...
- 移动安全办公的难点在哪?
热门文章
- IDEA 自定义代码模板
- 【设计指南】避免PCB板翘,合格的工程师都会这样设计!
- 网点分布图怎么做,用地图制作客户分布图
- 麒麟子Javascript游戏编程零基础教程大纲
- 天刀霸王枪服务器怎么维护了,1月31日服务器例行维护公告(已完成)
- 【cvpr2022-论文笔记】《L2G: A Simple Local-to-Global Knowledge Transfer .... Semantic Segmentation》
- 《按自己的意愿过一生》语录二
- 读《魔鬼搭讪学》有感
- 【量化选基】中证500指数增强比300增强好吗?
- el-select 远程搜索时 没有箭头图标