linux c获取IP地址

#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <string.h>
#include <arpa/inet.h>

int main(int argc, char **argv)
{
    int sockfd;
    struct ifreq ifr;

    char *ifname="eth0";
    strncpy(ifr.ifr_name, ifname, IFNAMSIZ-1);

    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if(ioctl(sockfd, SIOCGIFADDR, &ifr) == -1)
    {
        printf("Error\n");
        return;
    }

    struct sockaddr_in *myaddr;
    myaddr = (struct sockaddr_in*)&(ifr.ifr_addr);
    printf("IP: %s\n", inet_ntoa(myaddr->sin_addr));
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 10:37:54

linux c获取IP地址的相关文章

linux dhcp 获取ip地址能上网,设置静态ip地址则不能上网

今天碰到一个奇怪的问题:安装了一台centos6.6,安装完成后默认dhcp获取ip地址,发现是可以上网的,获取的ip地址为192.168.0.131/24,因为是安装的服务器,所以打算把此地址设置成静态ip地址,使用yum的时候发现连接不上,后来发现是系统不能上网了. 检查了好半天,发现ping 8.8.8.8 是可以ping通,但是ping www.baidu.com不能ping通,然后我去更改/etc/resolv.conf在里面添加nameserver 192.168.0.1重启netw

自动获取IP地址的命令是什么?您知道在什么情况下,您的Linux才可以自动获取IP地址?

1. 自动获取IP地址的命令是什么?您知道在什么情况下,您的Linux才可以自动获取IP地址? 答:(1) Linux中使用 dhclient 命令可以从DHCP服务器上获得一个可用的IP地址 (2)首先,需要激活网卡eth0:其次,如果linux是虚拟机,那么还需要设置虚拟机的网络是桥接 模式或者NAT模式,桥接模式必须在网络管理员允许分配IP的情况下自动获得IP地址才能成功: NAT模式一般都能成功:最后,可以配置eth0的配置文件/etc/sysconfig/network-scripts

linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换

用域名获取IP地址或者用IP获取域名 #include<stdio.h> #include<sys/socket.h> #include<netdb.h> int main(int argc,char **aggv) { struct hostent *host; char hostname[]="www.163.com"; char hostname2[]="www.baidu.com"; struct in_addr in;

(转)LINUX下Live555不能获取ip地址解决方法

linux下运行live55 显 示如图 :没有获取ip:  ip是0.0.0.0 live555在不知道本地IP地址与网络接口的情况下,通过一个在本地某端口建立一个UDP连接,然后把这个UDP连接加入 到一个组播组 ,当然要对这个组播组进行相应的设置,比如TTL,回环等等:然后通过UDP连接发送一个数据:最后通过这个UDP连接接收这个数据,并且解析相应的发送地址:大概流程就是这样了. 具体的代码片段live555:groupsock/GroupsockHelper.cpp里:因此我们设置固定的

linux中配合IS-IS搭建DHCP服务让客户机自动获取IP地址

实验目的:首先是配置上次发表IS-IS的部分配置过程,然后结合两台linux虚拟机,一台DHCP服务器,一台客户机,让客户机自动获取IP,使用DHCP给他保留的特定的IP地址,然后测试能够和另外一台添加的PC机互联互通. 实验过程:首先配置路由器的IP地址和IS-IS协议.RIP协议.并设置路由重分发. 然后配置linux-1的DHCP服务器以及配置文件. 然后配置linux-2的网卡参数为自动获取IP地址. 最后使用VPCS配置C1的IP地址测试和linux-2客户机的互通性.下面是详细过程.

linux如何自动获取ip地址

第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活. # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动.Linux有一点与windows不同的是很多服务默认是停止的,而且你在某次使用该服务时启动这个服务,但是没设置它为默认启动,则下次进入系统这个服务依然是停止的.下面是设置网络服务在系统启动时也启动的方法. 使用chkconfig命令让网络服务在系统启动级别是2345时默认启

虚拟机克隆Linux想使用远程工具却无法获取IP地址

使用虚拟机新建Linux启动Linux系统 首先编辑网卡信息:[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:e9:51:c2:51 TYPE=Ethernet UUID=df672a61-a87f-45b1-8445-7a304e870f66 ONBOOT=yes            #这是随系统启动而启动的选项 NM_CONTROLLED=no #这是由

CentOS 7如何设置Linux开机自动获取IP地址

centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录下网卡名称(本例中为ens33). 2.输入“cd /etc/sysconfig/network-scripts/”按回车键确定,继续输入“ls”按回车键查看文件. 3.输入“vi ifcfg-ens33”并按回车键确定(网卡名称可能不同).亦可在第二步直接输入“cd /etc/sysconfig/

ARM-Linux配置DHCP自动获取IP地址

备注:内核版本:2.6.30.9busybox版本:1.15.2 PC Linux和开发板Linux的工作用户:root 1. 配置内核:[*] Networking support --->Networking options ---><*> Packet socket<*> Unix domain sockets[*] TCP/IP networking[*] IP: kernel level autoconfiguration[*] IP: DHCP suppor