Re: [問題] libpcap 顯示封包來源
※ 引述《septemhill (冰淇淋乾杯)》之銘言:
: 程式碼如下:
: 在Linux平台上開發,使用libpcap-0.94
: http://nopaste.csie.org/5ad1b
: 目前在我程式碼中有註解了兩個地方:/* 1 */和/* 2 */
: 兩個地方顯示出來的結果似乎怪怪的
: 把inet_ntoa(daddr)和inet_ntoa(saddr)分行表示時是正常的
: 但是寫成一行時,source和dest顯示的卻會是一樣的資料
: 為什麼寫成一行和寫成兩行結果會差這麼多?
: 還請各位先進指點一下,謝謝
給你看一下 inet_ntoa 的 code 吧
#define INET_NTOA_MAX_LEN 16 /* max 12 digits + 3 '.'s + 1 nul */
char *inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
{
in_addr_t addr = ntohl(in.s_addr);
int i;
char *p, *q;
q = 0;
p = buf + INET_NTOA_MAX_LEN - 1; /* cannot use sizeof(buf) here */
for (i=0 ; i < 4 ; i++ ) {
p = _int10tostr(p, addr & 0xff) - 1;
addr >>= 8;
if (q) {
*q = '.';
}
q = p;
}
return p+1;
}
char *inet_ntoa(struct in_addr in)
{
static char buf[INET_NTOA_MAX_LEN];
return(inet_ntoa_r(in, buf));
}
順便看一下說明
The inet_ntoa() function converts the Internet host address in, given
in network byte order, to a string in IPv4 dotted-decimal notation.
The string is returned in a statically allocated buffer, which subsequent
calls will overwrite.
不知道你老師要求怎樣,還是你看錯要求了 ??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.208.15
推
06/10 11:29, , 1F
06/10 11:29, 1F
→
06/10 11:29, , 2F
06/10 11:29, 2F
→
06/10 11:30, , 3F
06/10 11:30, 3F
→
06/10 11:31, , 4F
06/10 11:31, 4F
→
06/10 11:31, , 5F
06/10 11:31, 5F
→
06/10 11:32, , 6F
06/10 11:32, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章