地址转换

#include<stdio.h>
#include <arpa/inet.h>
#include <string.h>

int main(int argc, char *argv[])
{
    char addr[26];
    struct in_addr id;
    unsigned char *p;
    int i;
    
    if(argc==1)
    {
        strcpy(addr,"192.168.1.1");
    }
    else
    {
        strcpy(addr,argv[1]);
    }
    printf("%s\n",inet_aton(addr,&id)?"IP地址有效":"IP地址无效" );
    p=(unsigned char*)&id;
    for (i=0; i<4; i++)
    {
    
        printf("%d\n", (int)p[i] );
    }
    p=inet_ntoa(id);
    printf("%s\n",p);
    return 0;
}

运行:

administrator@ubuntu:~$ ./tte 325.0125.01.00001
IP地址无效
205
130
4
8
205.130.4.8
administrator@ubuntu:~$ ./tte 255.255.255.255
IP地址有效
255
255
255
255
255.255.255.255
administrator@ubuntu:~$ 
注意,

(1)0开头的是8进制数;

(2)第二个参数空时,inet_aton可以用来测试一下网络地址的有效性

(3)inet_aton可以处理255.255.255.255(有限广播地址),但是inet_addr不行。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值