一個字串IP分割的處理小程式
阿新 • • 發佈:2019-01-27
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int ip_list(char *str);
int main(int arg,char **argv)
{
unsigned int ip_array[3];
int i;
if(argc < 3)
{
printf("請輸入三個IP地址,中間以空格隔開!如:192.168.1.2");
exit(1);
}
for(i=0; i<3; i++)
{
ip_array[i] = ip_list(argv[i+1]);
printf("array[%d] = %04x\n",i,ip_array[i]);
}
return 0;
}
/*處理字串ip*/
unsigned int ip_list(char *str)
{
unsigned char src[4];
unsigned int ip;
//儲存4個位元組的ip地址
int i = 0,j = 0;
memset(src,0,4);
/*處理IP地址:4個位元組*/
for(i=0;i<3;i++)
{
while(str[j] != '.' && str[j] != '\0')
{
src[i] = src[i]*10 + (str[j++]-'0');
}
j++;
}
/*儲存到32位的整型變數ip中*/
ip = (src[0]<<24);
ip = (ip | (src[1]<<16));
ip = (ip | (src[2]<<8));
ip = (ip | src[3]);
return ip;
}