2006-06-6 (1)获取网口地址 linux GNU c ioctl

原创 2006年06月06日 21:13:00
unsigned long do_ioctl_get_ipaddress(char *dev)
{
                struct ifreq ifr;
                int fd;
                int err;
                unsigned long ip;
                unsigned long myip;
                struct in_addr tmp_addr;
                int i=0;
        strcpy(ifr.ifr_name, dev);
        fd = socket(AF_INET, SOCK_DGRAM, 0);
        err = ioctl(fd, SIOCGIFADDR, &ifr);
        if (err) {
                perror("ioctl");
                return 0;
        }
        close(fd);
        memcpy(&ip,ifr.ifr_addr.sa_data + 2,4);
        myip = ip;
        tmp_addr.s_addr=myip;
        return myip;
}
 
 
 

#include <sys/socket.h>

int socket (int family, int type, int protocol);

Figure 4.2. Protocol family constants for socket function.
graphics/04fig02.gif
Figure 4.3. type of socket for socket function.
graphics/04fig03.gif
Figure 4.4. protocol of sockets for AF_INET or AF_INET6.
graphics/04fig04.gif

Not all combinations of socket family and type are valid. Figure 4.5 shows the valid combinations, along with the actual protocols that are valid for each pair. The boxes marked "Yes" are valid but do not have handy acronyms. The blank boxes are not supported.

Figure 4.5. Combinations of family and type for the socket function.
graphics/04fig05.gif
 
 
 
 

#include <unistd.h>

int ioctl(int fd, int request, ... /* void *arg */ );

graphics/17fig01.gif
 
#define IFNAMSIZ     16

struct ifreq {
    char    ifr_name[IFNAMSIZ];  /* interface name, e.g., "le0" */
    union {
        struct  sockaddr ifru_addr;
        struct  sockaddr ifru_dstaddr;
        struct  sockaddr ifru_broadaddr;
        short   ifru_flags;
        int     ifru_metric;
        caddr_t ifru_data;
    } ifr_ifru;
};套接口地址结构
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MacBook Pro如何修改Type C网口适配器的Mac地址

MacBook Pro如何修改Type C网口适配器的Mac地址

Linux下获取本地IP地址--------ioctl

转自:http://blog.csdn.net/moonvs2010/article/details/7785894   获取本地的局域网IP地址,个人认为最好的还是这个神器---ioctl,这个接...

NJUPT GNU/Linux编程 实验1-6总结(走过的坑)

课程小结:总结实验中一些踩过的坑。

OK6410 FLASH RAM 网口地址分析

首先,来了解一下s3c6410的memory。 Memory,又叫主内存,分为4大区域,分别是启动镜像区、内部内存区、静态内存区、动态内存区。  启动镜像区物理地址为0x00000000~0x07...

linux 利用ioctl函数获取IP地址、子网掩码、MAC地址和修改本机IP地址、子网掩码、网关

ioctl函数原型: int ioctl(int fd, int request, ..../*void *arg*/) int fd:为socket函数返回值 int request:SIOCSIF...

C6678 H.264 高性能视频编码测试——基于网口

通过之前的测试,我们知道通过仿真器串口传输视频数据速度很慢,大概15KB/S 左右,所以又测试了下TI提供的另一个DEMO:C:\ti\mcsdk_video_2_2_0_46\dsp ,这个demo...

U-Boot中改用DM8168的网口1

DM8168在U-Boot默认使用且只支持EMAC0实现网口通信。为改用EMAC1,需要对U-Boot做一些修改。

千兆网口 Freescale ETSEC + Marvell 88E1111 uboot Linux 驱动分析 三

千兆网口 Freescale ETSEC + Marvell 88E1111 uboot Linux 驱动分析 三                分类:&...

ethtool测定Linux服务器上网卡硬件与网口的对应关系

1 ethtool DEVNAME   查看相应设备名称对应的设备信息 [root@localhost ~]# ifconfig -s Iface MTU RX-OK RX-ER...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)