ifreq结构中的IP怎么提取出来? Linux下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ifreq结构中的IP怎么提取出来? Linux下相关的知识,希望对你有一定的参考价值。

学了一段代码 但是不是很明白 实在用不来ifreq这个结构 向大家请教下

代码如下
int fd_arp;
struct ifreq ifr;
fd_arp = socket(AF_INET , SOCK_DGRAM , 0);
strcpy(ifr.ifr_name , "eth0");
ioctl(fd_arp , SIOCGIFADDR , &ifr);

我知道这样之后 ifr里就有了本机IP,但是不会使用,我需要这样,转存到这样一个数据结构之中。
struct _arp_hdr

...
u_char ar_sip[4];
.....


我想用这个 ar_sip[4] 来存IP 请问该怎么转进去呢?就是将ifr得到的IP存到 这个ar_sip里。

我已经测试过 perror("ioctl IP"); 得到的结果是success 是成功了的 就是不知道怎么转出来。

谢谢大家了。帮助下

参考技术A #include <net/if.h>
#include <net/if_arp.h>
#include <arpa/inet.h>
#include <errno.h>

#define ETH_NAME "eth0"

int main()

int sock;
struct sockaddr_in sin;
struct ifreq ifr;

sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == -1)

perror("socket");
return -1;


strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;

if (ioctl(sock, SIOCGIFADDR, &ifr) < 0)

perror("ioctl");
return -1;


memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
fprintf(stdout, "eth0: %s\n", inet_ntoa(sin.sin_addr));

return 0;
本回答被提问者采纳

怎么样把PDF文件中的电子签名提取出来转换成PDF格式?

将PDF文件中的电子签名提取出来转换成PDF格式的步骤如下:

1、要从pdf文件中提取签名,我们可以使用屏幕截图工具将其切断。

2、如果签名被添加到图像文件中,我们可以使用“快速pdf编辑器”打开文件,然后单击“编辑”按钮。

3、此时,我们可以点击签名。如果是图片,则会出现签名的蓝色边框。

4、然后使用鼠标右键单击签名并选择要保存的图片。



5、然后,就可将PDF文件中的电子签名提取出来转换成PDF格式。

拓展资料:

从电子签名的定义中,可以看出电子签名的两个基本功能:

(1)识别签名人。

(2)表明签名人对内容的认可。电子签名法律上在定义电子签名时充分考虑了技术中立性,关于电子签名的规定是根据签名的基本功能析取出来的,认为凡是满足签名基本功能的电子技术手段,均可认为是电子签名。由电子签名和数字签名的定义可以看出,二者是不同的:电子签名是从法律的角度提出的,是技术中立的,任何满足签名基本功能的电子技术手段,都可称为电子签名;数字签名是从技术的角度提出的,是需要使用密码技术的,主要目的是确认数据单元来源和数据单元的完整性。

参考技术A 就是去掉电子签名吧 你得下载一个PDF编辑软件,就是ADOBE DESIGNER 和photoshop 是一个公司出的,那个软件就可以去掉电子签名,水印 ,你还可以自己制作PDF,就想WORD一样的制作文档,编辑文档,不明白可以站内信哈、 参考技术B 你先用截图功能把电子签名截下来,再安装个PDF软件,就可以了,别忘了采纳我的为最佳答案哦!呵呵…… 参考技术C 我不是很明白你表达的是什么意思~~你把PDF文件发给我 我帮你看看吧 wangjinling117@foxmail.com

以上是关于ifreq结构中的IP怎么提取出来? Linux下的主要内容,如果未能解决你的问题,请参考以下文章

struct ifreq结构体, if是interface, req是啥的缩写

两个结构体ifconf和ifreq

c语言怎么导入ifreq这个结构体

Linux下获取网络接口信息

struct ifreq学习和实例

怎么将数组数据批量的提取出来。