将IP地址转换为整数

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    char ip[16];
    char temp[4][4];
    cin>>ip;
    char *delim=".";//分隔符
    char *p;
    unsigned long i=3;//这儿要注意要把字符串反着存放
    strcpy(temp[i--],strtok(ip,delim));//strtok字符串分割成一个个片段。参数s指向欲分割的字符串,delim为分隔符.
    while(p=strtok(NULL,delim))
    {
        strcpy(temp[i--],p);
    }
    unsigned long arr[4];
    unsigned long strtemp[4][8];
    for(i=0;i<=3;i++)//分别将每个字符串转换为数字
    {
        arr[i]=atoi(temp[i]);//将字符串的值转换为整数
        cout<<arr[i]<<" ";
    }
    cout<<endl;
    for(i=0;i<=3;i++)
    {
     for(unsigned long j=0;j<=7;j++)//将十进制转换为二进制
     {
        strtemp[i][j]=arr[i]%2;
        arr[i]=arr[i]/2;
        cout<<strtemp[i][j];
     }
     cout<<endl;
    }
    unsigned long sum=0,result;unsigned long (*q)[8];
    //这儿一定要注意sum的类型,我开始写的是long型,最后结果出现的是负值,让我调试了好久!!
    q=strtemp;
    unsigned long count=0;
    for(i=0;i<=3;i++)
    {
     for(unsigned long j=0;j<=7;j++)
     {
         result=ldexp(*(*(q+i)+j),count++);
         sum+=result;
     }

    }
    cout<<sum<<endl;
    return 0;
}
时间: 2024-08-05 23:42:45

将IP地址转换为整数的相关文章

Python—IP地址与整数之间的转换

1. 将整数转换成IP: 思路:将IP地址转换成无符号32位的二进制,再8位进行分割,每8位转换成十进制即可. #!usr/bin/python 2 #encoding=utf-8 3 #1. 将整数转换成32位无符号二进制 4 def intToIp(num): 5 s = [] 6 g = [] 7 h = [] 8 for i in range(32): 9 a = num%2 10 s.insert(0,a) 11 num = num/2 12 print s 13 #2. 每8位进行分

JAVA中如何将整数表示的ip地址转换为字符串表示

/** * 将整数表示的ip地址转换为字符串表示. * * @param ip 32位整数表示的ip地址 * @return 点分式表示的ip地址 */public static final String long2Ip(final long ip) {      final long[] mask = { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 };      final StringBuilder ipAddress = new Stri

JAVA将字符串表示的ip地址转换为long表示

/** * 将字符串表示的ip地址转换为long表示. * * @param ip ip地址 * @return 以32位整数表示的ip地址 */ public static final long ip2Long(final String ip) { if (!RegexpUtils.isExactlyMatches("(\\d{1,3}\\.){3}\\d{1,3}", ip)) { throw new IllegalArgumentException("[" +

JAVA将整数表示的ip地址转换为字符串表示

/** * 将整数表示的ip地址转换为字符串表示. * * @param ip 32位整数表示的ip地址 * @return 点分式表示的ip地址 */ public static final String long2Ip(final long ip) { final long[] mask = { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 }; final StringBuilder ipAddress = new StringBuilder

C#中IP地址转换为数值的方法

任何语言都通用的方法转换 IP 地址 a.b.c.d ==> a*256*256*256+b*256*256+c*256+d ===> 256*(c+256*(b+256*a)) +d 示例: 72.167.124.214 ==> 72*256*256*256+167*256*256+124*256+214 ===> 256*(1 24+256*(167+256*72))+214 .net 提供的方法转换 IP 地址 // 字符串转换为数字 System.Net.IPAddress

js中ip地址与整数的相互转换

转载地址 //IP转成整型function _ip2int(ip) {    var num = 0;    ip = ip.split(".");    num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);    num = num >>> 0;    return num;} //整型解析为IP地址functi

转换IP地址为整数

#include <iostream> #include <string.h> using namespace std; int main() { char input[100]="10.0.3.193"; //cin>>input; int output=0; int i=0,j=0,k; int ip[4]; char temp[100]="\0"; memset(ip,0,sizeof(ip)); while(input[i

python实现将IP地址转换为数字

话不多说,直接代码 ip_addr='192.168.2.10' # transfer ip to int def ip2long(ip): ip_list=ip.split('.') result=0 for i in range(4): #0,1,2,3 result=result+int(ip_list[i])*256**(3-i) return result long=3232236042 # transfer int to ip def long2ip(long): floor_lis

将F5插入的cookie转换为IP地址

起因 近期,我在自己维护的系统中遇到了和F5有关的问题,所以有幸研究了一下F5插入的cookie和IP地址之间的关系.该系统前端由F5进行负载均衡,并通过cookie插入的方式来做会话保持,后端有50台应用服务器. 原理 当F5采用cookie会话保持的方式进行应用分发时,会在请求中插入一条自己的cookie,用于判断分发到后端的哪台应用.当下次再次处理时,如果看到请求中带有自己插入的cookie,会按该cookie中包含的IP进行转发,进而保证用户能够分发到同一台应用.例如下面这条请求,F5插