我的老师给我一个任务,用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
答案 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 );