使用in_addr结构中的点显示IP地址

时间:2018-12-08 23:45:10

标签: c++ pcap winpcap

我的老师给我一个任务,用C ++读取pcap文件并显示有关每条消息的一些信息。使用一些旧资源,我设法读取了pcap文件,但是访问IP标头等时遇到了问题。

我有<html><body> <button type="button" onclick="sendData()">Send</button> <div id="content">No reponse from script yet.</div> <script> function sendData() { var http = new XMLHttpRequest(); http.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById('content').innerHTML = this.responseText; } }; http.open('POST', '/cgi-bin/proc.py', true); http.setRequestHeader('content-type', 'application/x-www-form-urlencoded'); http.send('age=10&name=joe'); } </script> </body></html> 个对象,它是#!/usr/bin/env python import cgi data = cgi.FieldStorage() print 'Content-type: text/html\n' print data['name'].value print '<br />' print data['age'].value 的实例, ip_src显示in_addr struct

我在某个地方找到了cout << "IP: "<< ip->ip_src.s_addr << endl;函数,但是在以IP: 167772170的身份使用时,它给了我一个错误:inet_ntoa,但是Visual Studio会检测到此函数并给出哪种类型的建议争论应该是。

我的整个代码:

unresolved external symbol _imp_inet_ntoa@4 referenced in function _main

2 个答案:

答案 0 :(得分:1)

您包括了标题winsock2.h(因此,声明对于IDE和编译器都是可见的)。

但是,您实际上没有链接库(因此链接和构建无法完成)。

这里是an MSDN tutorial on using Winsock。请务必遵循并学习所有说明。

答案 1 :(得分:0)

您已经拥有二进制地址IPv4,只需将地址拆分为: IP:167772170

unsigned int ip_v4_addr = 1677772170;

printf("IP-Address: %u.%u.%u.%u\n", ip_v4_addr >> 24, (ip_v4_addr >> 16) & 0xff, \
   (ip_v4_addr >> 8) & 0xff, ip_v4_addr & 0xff );