C/C++编程题之IP地址转整数
来源:互联网 发布:施工现场平面图 软件 编辑:程序博客网 时间:2024/05/16 17:00
/* 功能:将输入的string类型的IP信息转换为string类型
* 输入:string类型的IP信息
* 输出:DWORD结果,正常返回解析结果值,异常时,dwIP为0
* 返回:返回解析的整型,异常时返回"0"
* 输入:string类型的IP信息
* 输出:DWORD结果,正常返回解析结果值,异常时,dwIP为0
* 返回:返回解析的整型,异常时返回"0"
*/
代码:
#include <stdlib.h>#include <atlstr.h>#include "oj.h"#include <iostream>#include <string>using namespace std;bool effective(string strIP)//检查ip地址的有效性{int cnt = 0;char *ip = (char*)strIP.c_str();while(*ip != '\0'){if(*ip == '.'){cnt++;}if(*ip >= '0' && *ip <= '9' || *ip == '.'){ip++;}else{return false;}}if(cnt != 3)return false;return true;}string GetValueByIP(string strIP){if(!effective(strIP))return "0";unsigned int res = 0;char resIp[12] = {0};unsigned char value[4] = {0};//存放IP地址的四个数字char word[10] = {0};int cnt = 0,cntNum = 0;char *ip = (char*)strIP.c_str();while(*ip != '\0')//拆分到value{while(*ip != '\0' && *ip != '.'){word[cnt++] = *ip;ip++;}word[cnt] = '\0';cnt = 0;if(atoi(word) > 255 || atoi(word) < 0)return "0";value[cntNum++] = atoi(word);if(cntNum == 4)break;ip++;}res = (value[0]<<24) | (value[1]<<16) | (value[2]<<8) | value[3];//将四个数字进行拼接成一个整数sprintf_s(resIp,sizeof(resIp),"%u\0",res);string result = resIp;return result;}
0 0
- C/C++编程题之整数转IP地址
- C/C++编程题之IP地址转整数
- 用C把整数转换成Ip地址
- C/C++整数与IP地址间的转换
- IP地址转整数
- [编程题]整数与IP地址间的转换
- [编程题]整数与IP地址间的转换
- linux编程--c代码获取本机IP地址
- linux编程--c代码获取本机IP地址
- Linux下C编程实现---获取本机IP地址
- C/C++编程:整数转字符串输出
- [华为OJ--C++]030-整数与IP地址间的转换
- linux C获取IP地址
- C函数设置IP地址
- C函数获取IP地址
- C/C++判断IP地址
- 【C++】判断IP地址有效性
- linux c获取IP地址
- Android 扫描wifi局域网ip
- SQL语句执行效率测试
- 用户登录验证Ajax实例详解
- 第K极值
- 【codevs天梯&青铜Bronze】解题报告
- C/C++编程题之IP地址转整数
- Android-有序广播简单例子
- C语言实现ls命令
- cocos2dx 玩转音乐播放
- java 字符串json
- 动态规划之背包问题详解
- HBase-1.0读写数据
- ios隐藏状态栏
- 自定义ExpandableListView