从任何字符串中提取IP
void getHostIP(char* hostIP,const char* sourceStr)
{
char nbuf[4];
int sn[4];
int i,ret,start,n,m;
int runnum=0;
start = 0;
while (1)
{
runnum++;
//第一个数大于255的情况
if (runnum > 1)
{
ret=RE_ERR;
for (i=start+1;i<strlen(sourceStr);i++)
{
if (sourceStr[i]<'1' || sourceStr[i]>'9')
{
start = i;
ret=RE_OK;
break;
}
}
if(ret==RE_ERR)
{
break;
}
}
//查找第一个数为数字的
ret=RE_ERR;
for (i=start;i<strlen(sourceStr);i++)
{
if (sourceStr[i]>='1' && sourceStr[i]<='9')
{
start = i;
ret=RE_OK;
break;
}
}
if(ret==RE_ERR)
{
break;
}
//在剩余的字串中是否含有三个点
n=0;
for (i=start;i<strlen(sourceStr);i++)
{
if (sourceStr[i]=='.')
{
n++;
}
}
if (n<3)
{
ret = RE_ERR;
break;
}
ret=RE_ERR;
memset(nbuf,0,sizeof(nbuf));
for (i=start,m=0,n=0;i<strlen(sourceStr);i++)
{
if (sourceStr[i]>='0' && sourceStr[i]<='9')
{
if(n<3)
{
nbuf[n]=sourceStr[i];
ret=RE_OK;
}
else
{
ret=RE_ERR;
break;
}
n++;
}
else if (sourceStr[i]=='.')
{
if (strlen(nbuf)==0)
{
ret=RE_ERR;
break;
}
sn[m] = atoi(nbuf);
if (sn[m] <= 255)
{
m++;
n=0;
memset(nbuf,0,sizeof(nbuf));
if (m==4)
{
ret=RE_OK;
break;
}
}
else
{
ret=RE_ERR;
break;
}
}
else
{
break;
}
}
if (m==3)
{
if (ret==RE_OK)
{
if (strlen(nbuf)==0)
{
ret=RE_ERR;
}
else
{
sn[3]=atoi(nbuf);
if (sn[3] <= 255)
{
ret=RE_OK;
}
else
{
ret=RE_ERR;
}
}
}
}
else
{
if (m!=4)
{
ret=RE_ERR;
}
}
if (ret==RE_OK)
{
break;
}
else
{
continue;
}
}
if (ret==RE_OK)
{
sprintf(hostIP,"%u.%u.%u.%u",sn[0],sn[1],sn[2],sn[3]);
}
}
从任何字符串中提取IP相关推荐
- 从字符串中提取IP子串(C语言)
1 目标 ① 从字符串中提取IP子串 ② 验证IP字符串是否合法(IPV4) 2 代码 ① ip地址提取 /*** @brief : IPv4地址提取* @param in_ip : 待提取字符串* ...
- 【C语言】从字符串中提取IP地址最简洁的方法
首先先看一下判断字符串是否为IP地址(IPv4地址是否合法)的方法: ([C语言]判断字符串是否为IP地址(IPv4地址是否合法)) #include <stdio.h> #include ...
- 字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...
c语言中的单引号和双引号可是有很大区别的,使用之前一定要了解他们之间到底有什么不同,下面小编就给大家详细的介绍一下吧,对此还不是很了解的朋友可以过来参考下 问题:从c++文件中将std:string转 ...
- C语言从一段字符串中提取IP地址的方法
1. 需求 当前待解析字符串格式为: +CIFSR:STAIP,<Station IP address> +CIFSR:STAMAC,<Station MAC address> ...
- 字符串中提取IP地址
// 带端口号的IP地址 QStringList getIpAddressAndPort(const QString & strText) {QStringList strList;QRegE ...
- Java使用正则表达式从字符串中提取 IP 地址
import java.util.regex.Matcher; import java.util.regex.Pattern;public class ExtractIP {public static ...
- java从字符串中提取数字
1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...
- 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符
SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...
- R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符、str_sub函数指定起始位置和终止位置替换子字符串
R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符.str_sub函数指定起始位置和终止位置替换子字符串 目录
最新文章
- 【统计图】Echarts实现多条折线图渐变堆叠效果
- BZOJ1449[JSOI2009]球队收益BZOJ2895球队预算——最小费用最大流
- zblog如何调用HTML,Zblog调用栏目文章的方法
- java 自定义注解以及获得注解的值
- Codeforces Round #656 (Div. 3) F. Removing Leaves 贪心 + 模拟
- LS 24 Bracket sequence(DP)
- 7-4 输出最小公倍数 (9 分)
- 这些C4D创意卡通色彩场景,简直酷到爆炸!
- C#中winform怎么在线预览PDF,预览网上的PDF控件!不用安装Adobe PDF Reader等等其他,方案记录
- php 中国姓名验证规则,我想在表单验证中加入中文姓名合法性模糊匹配判断?...
- matlab读取txt文件
- 关于百度地图(二):只需要定位,不需要地图(什么?回调混乱?一招解决!)
- sd u盘 速度测试软件,u盘速度测试(FlashBench)sd卡速度测试
- delphi 安装控件时提示系统找不到指定的模块的解决
- python基础编码规范_Python语言的基本语法和编码规范.ppt
- 论坛发帖页面html,为Discuz门户文章和论坛帖子页面添加分享按钮
- 【bootstraptable】JS访问用户媒体设备摄像头,进行拍照保存
- zoc7中文乱码问题解决方法
- 绘图杂记【3】Python / R语言 制作峰峦图
- 华师大网络学院计算机,华师大网络学院计算机原理作业.doc
热门文章
- win10中最常用快捷键大全
- Vue父子组件生命周期的先后顺序
- python爬虫好友图片_用itchat库爬取你所有微信好友的头像,并合成一张大图
- SQL中英文混合排序
- 矩阵分析之 实矩阵分解(2)LU,PLU分解
- 信息安全--三:BLP模型(Bell-La Padula模型)
- 教育的未来,会是什么样子?
- Windows10专业版任务栏右下角按钮左键无效右键有效的问题的解决
- 航海王燃烧意志服务器维护是什么,航海王燃烧意志12月6日更新了什么 航海王燃烧意志更新维护公告...
- cherry-pick的定义和使用方法