Linux中ip地址结构和ip地址的转换

ip地址结构

struct sockaddr_in
{
    sa_family_t    sin_family; /* address family: AF_INET */
    in_port_t      sin_port;   /* port in network byte order */
    struct in_addr sin_addr;   /* internet address */
};

/* Internet address. */
struct in_addr
{
    uint32_t       s_addr;     /* address in network byte order */
};

点分十进制ip转换:

#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>

int
main()
{
    const char *ip_str = "192.168.1.1";
    //const char *ip_str = "255.255.255.255";
    //const char *ip_str = "0.0.0.0";
    struct in_addr in;
    memset(&in, 0, sizeof(struct in_addr));
    in.s_addr = inet_addr(ip_str);
    printf("ip addr is:%u\n", in.s_addr);
    printf("ip addr is:%s\n", inet_ntoa(in));
    memset(&in, 0, sizeof(struct in_addr));
    inet_aton(ip_str, &in);
    printf("ip addr is:%s\n", inet_ntoa(in));
    return 0;
}

结果:

shelmean:[~]$ ./a.out
ip addr is:16885952
ip addr is:192.168.1.1
ip addr is:192.168.1.1

 

原文地址:https://www.cnblogs.com/shelmean/p/10054809.html

时间: 2024-11-02 01:12:29

Linux中ip地址结构和ip地址的转换的相关文章

linux中临时、永久修改ip

临时修改ip 在linux中输入命令:ifconfig eth0 192.168.1.1 netmask 255.255.255.0   回车 这里的192.168.1.1是临时ip,netmask是子网掩码,这个临时ip会在你重启网卡后重新变成之前的ip 永久修改ip 在linux中输入命令 #  vim /etc/sysconfig/network-scripts/ifcfg-eth0,在ifcfg-eth0文件中新增或修改 IPADDR=192.168.1.1 NETMASK=255.25

Linux中仅主机模式下设ip

昨天在项目中接触到了Hadoop,需要用到linux来操作,以前有过接触,大致都忘了,在装备虚拟机的时候,遇到的IP  ping不通的问题,模式是仅主机模式,今天分享一下,以便自己以后再遇到,也可以迎刃而解,也希望可以帮到刚接触虚拟机的朋友. 打开网络共享中心-->更改适配器设置-->,右击打开属性, 这是我给设置的IP等等. 再右击本地连接, 打开共享,勾上允许-----框中选择刚才的 VMware Network Adapter VMnet1   这个, 接下来.就是设置虚拟机中的Ip了,

第二十一篇:Linux 操作系统中的进程结构

前言 在 Linux 中,一个正在执行的程序往往由各种各样的进程组成,这些进程除了父子关系,还有其他的关系.依赖于这些关系,所有进程构成一个整体,给用户提供完整的服务( 考虑到了终端,即与用户的交互 ). 本文将详细描述 Linux 中的进程结构. 进程结构 上图所描述的是为了给用户提供一次完整服务( 需要处理用户IO等 )所涉及到的一个完整的进程结构,几个部分解释如下: 1. 控制进程 建立与终端连接的进程称为控制进程( 属于后台进程组之一 ) 2. 前台进程组 控制终端( 处理如Ctrl+C

提取linux中eth0的IP地址

法1:cut [[email protected] oldboy]# ifconfig eth0|grep 'inet addr'|cut -d ":" -f2|cut -d " " -f1 10.0.0.162 法2:awk [[email protected] oldboy]# ifconfig eth0|grep 'inet addr'|awk -F ":" '{print $2}'|awk '{print $1}' 10.0.0.162

在linux中设置静态ip地址

在linux中设置静态ip地址1.在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.开始编辑,填写ip地址.子网掩码.网关.DNS等[[email protected] 桌面]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0  #设备名称TYPE=Ethernet #网络类型UUID=bfafdad5-e1c9-4adf-864b-c772e4965ab7ONBOOT=

awk -F选项同时指定多个符号做为分割符时遇到空格坑,题目:请执行命令取出 linux 中 eth0 的 IP 地址

第三关课前考试题:3.请执行命令取出 linux 中 eth0 的 IP 地址(请用 cut,有能力者也可分别用 awk,sed 命令答) 因为以前有个题讲过awk -F选项可以指定输入分割符,也可以同时使用多个符号作为分割符对文件进行切割,所以我决定先使用awk -F 以前awk -F同时指定多个分割符的例子: [[email protected] ~]# cat oldboy.txt I am oldboy,myqq is 31333741 [[email protected] ~]# aw

【Linux 网络编程】网络IP地址结构体

(1)IPv4套接口地址结构通常也称为"网际套接字地址结构",它以"sockaddr_in"命名,        定义在<netinet/in.h>        struct sockaddr_in{            uint8_t sin_len; //整个sockaddr_in结构体的长度            sa_family sin_family; //指定该地址家族,在这里必须设置为AF_INET            in_port

linux下设置电信网通双线路IP地址

工作上遇到需要在linux下设置电信网通双线路IP地址,操作系统为Suse Linux Enterprise Linux 11 SP2,简要记录下步骤: 编辑/etc/sysconfig/network/ifcfg-eth0, /etc/sysconfig/network/ifcfg-eth1, 设置两个网卡的IP地址,eth0为电信的,eth1为网通的 BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='${telecomip}

《TCP/IP协议详解 卷1》 第二章 Internet 地址结构

Internet 地址结构 连接到Internet的每个设备至少要有一个IP地址.基于TCP/IP协议的专用网络中使用的设备也需要IP地址. 表示IP地址 IPv4地址: 32bit 采用点分四组或者点分十进制表示.例如165.195.130.105 IPv6地址: 128bit 采用块或字段的四个十六位进制数表示.例如5f05:2000:80ad:5800:0058:0800:2023:1d71 该表示方法有以下共识: 块前导0必须省略,如上面的地址可以写成5f05:2000:80ad:580