url中找出IP地址
从url中找出ip地址
比如 http://192.168.1.111:3000/2.xml
比如 http://192.168.2.222/dddd.png
思路
设定接口函数为:
const char * findip(string &xmlip, int &num)
1 从中找出第一个数字,如果没有数字,那就返回NULL
2 从中找到末位是’:’ , ‘/’ 的,如果找不到,就返回NULL
此种为特定的函数,并没有把所有出错处理完成,也没有完成是否是IP地址
所以完成后,必须检测是否是ip地址
const char * findip(string &xmlip, int &num)
{#define JUDGE if(pos==pend){num=0;return NULL;}const char *pos = xmlip.c_str();const char *pstart = pos;const char *pend = pos + xmlip.size();if (isdigit(*pos))pstart = pos;else while (!::isdigit(*(++pos)) && (pos!=pend));JUDGEpstart = pos;while ((++pos != pend) && (*pos)!= '/' && (*pos) != ':');JUDGEnum = pos - pstart;return pstart;
}
但是这种没有考虑最后一位是数字的情况,修改一下判读虽然到了结尾但是结尾是数字的情况,这种边缘测试是非常需要的,对这个函数进行用例上的测试确实需要完整,当然我们的函数依然是不完整,不过大多数的情况已经覆盖:
const char * findip(string &xmlip, int &num)
{const char *pos = xmlip.c_str();const char *pstart = pos;const char *pend = pos + xmlip.size();if (isdigit(*pos))pstart = pos;else while (!::isdigit(*(++pos)) && (pos!=pend));if (pos == pend) {num = 0; return NULL; }pstart = pos;while ((++pos != pend) && (*pos)!= '/' && (*pos) != ':');if (pos == pend){if (!isdigit(*(pend - 1))){num =0;return NULL;}}num = pos - pstart;return pstart;
}
测试
int main()
{string test;string ipxml = "http://192.168.1.123:3001/test.xml";int num = 0;const char * ip = findip(ipxml, num);test = string(ip, num);cout << test <<endl;ipxml = "192.168.1.123:3001";ip = findip(ipxml, num);test = string(ip, num);cout << test << endl;ipxml = "192.168.1.123/2.xml";ip = findip(ipxml, num);test = string(ip, num);cout << test << endl;ipxml = "http://192.168.1.123/2.xml";ip = findip(ipxml, num);test = string(ip, num);cout << test << endl;ipxml = "http://192.168.1.23";ip = findip(ipxml, num);test = string(ip, num);cout << test << endl;getchar();
}
输出
192.168.1.123
192.168.1.123
192.168.1.123
192.168.1.123
192.168.1.23
这样基本的情况已经判定了,需要的是接下去判定是否是真实的ip地址。读者可以自行完成。
url中找出IP地址相关推荐
- 字节一面:如何从 100 亿 URL 中找出相同的 URL?
点击关注公众号,Java干货及时送达 题目描述 给定 a.b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G.请找出 a.b 两个文件共同的 URL. 解答思路 每 ...
- 如何从 100 亿 URL 中找出相同的 URL?
来源 | https://doocs.github.io/advanced-java/ 题目描述 给定 a.b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G.请找 ...
- 面试:如何从大量的 URL 中找出相同的 URL?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://8rr.co/FR7V 赠书:聊 ...
- 面试:如何从 100 亿 URL 中找出相同的 URL?
题目描述 给定 a.b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G.请找出 a.b 两个文件共同的 URL. " 推荐一个艿艿写的 6000+ Sta ...
- 从亿级数据量的url中找出出现次数最多的前十个url
流程: mapToPair + reduceByKey:计算每个url的出现次数: mapToPair + sortByKey:反转PairRDD,按照降序的方式对url的出现次数进行排序: take ...
- 3.请执行命令取出linux中eth0的IP地址(考试题答案系列)
说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息.http://oldboy.blog.51cto.com/2561410 ...
- 计算机网络配置虚拟ip,好不好在电脑中设置虚拟IP地址?
更改IP地址 广域IP: 1.如果是PPOE上网只需断开连接再重新连上就好了,服务器会从IP地址池中随机分配一个IP地址给你. 2.固定IP上网那你要找运营商更改了,这样改是快不了的. 局域IP: 网 ...
- 计算机 修改 虚拟ip,怎么样在电脑中设置虚拟IP地址?
满意答案 wtc6981 2020.03.01 采纳率:56% 等级:9 已帮助:114人 更改IP地址 广域IP: 1.如果是PPOE上网只需断开连接再重新连上就好了,服务器会从IP地址池中随 ...
- C++ 实现 ping 功能 域名(URL)解析实际 IP地址
1.简述 一般情况下,我们想知道在当前电脑设备环境下,某一个网址能不能访问,最简单的方法是win + R 键 ,输入cmd,召唤cmd命令行程序,然后直接用ping命令 + 网址 来看返回的结果,那么 ...
最新文章
- 「苹果牌」电动车要来了:最早明年见,还带着突破性电池技术
- 苹果连接电脑只能充电_苹果 iPhone 12 曝充电 Bug:多口充电器无一幸免 只能用单独充电头 - 手机 - IT商业网...
- linux开启防火墙挂载nfs
- python下载的库要放到哪里-Python下载url并保存文件的三种方法
- C# 学习笔记(10)加速球
- 【Paper】2007_Consensus control for a class of networks of dynamic agents 二阶静态一致性
- Scala之部分应用函数
- 花了一天精选了20多篇好文,只为与你分享
- python的power bi转换基础
- vue与elementUI中给el-input绑定键盘按键--按键修饰符
- 后端数据成功返回 页面不渲染_如何统计页面访问量,看这一篇就够了
- 华为鸿蒙3799跟4799有啥区别,华为鸿蒙智慧屏出世!3799元高价,是增智慧还是智商税?...
- Java基础----泛型
- Diamond书写FPGA代码
- Vue实现户籍管理系统户籍信息的添加与删除
- 短视频运营方法分享,三个方面要注意,合理运营才能吸粉引流
- 一部手机必须能用 7 年?苹果、三星、Google:三年支持差不多!
- 从键盘输入一个阿拉伯数字,输出对应的财务数字, 用switch。/*零、壹、贰、叁、肆、伍、陆、柒、捌、玖、亿、万、仟、佰、拾。
- 漏洞建议:实施 TLS_FALLBACK_SCSV。此外,要么完全禁用 SSLv3,要么禁用以通过 SSLv3 的 CBC 模式操作的所有密码套件
- uniapp vue3版本 引用color-ui的cu-custom组件问题
热门文章
- 年轻人的钱包,被十一假期榨干了
- 微软Surface Pro 8曝光:搭载第11代酷睿处理器和Win11系统
- 陌陌宣布启用全新中文名“挚文集团” ,Q2净利润4.6亿元
- 微信状态可设置QQ音乐 网友:能不能整点实用的?
- 工信部:1-2月我国出口手机1.6亿台 同比增加32.6%
- 春节档总票房已破50亿 情人节单日票房超14亿
- 酸了酸了,BAT过六一的这些礼物都想要
- 董明珠宣布开启抖音直播卖货首秀,对刚“半价”直播罗永浩?
- 拼多多联合三奇医卫等企业,每天上架1000万只平价口罩
- 阿里影业出品影片《1917》斩获奥斯卡多项大奖 有望国内院线上映