gmt2local.c:
int32_t
gmt2local(time_t t)
{
register int dt, dir;
register struct tm *gmt, *loc;
struct tm sgmt;
if (t == 0)
t = time(NULL);
gmt = &sgmt;
*gmt = *gmtime(&t);
loc = localtime(&t);
dt = (loc->tm_hour - gmt->tm_hour) * 60 * 60 +
(loc->tm_min - gmt->tm_min) * 60;
/*
* If the year or julian day is different, we span 00:00 GMT
* and must add or subtract a day. Check the year first to
* avoid problems when the julian day wraps.
*/
dir = loc->tm_year - gmt->tm_year;
if (dir == 0)
dir = loc->tm_yday - gmt->tm_yday;
dt += dir * 24 * 60 * 60;
return (dt);
}
tcpdump.c
int tflag=1;
cast 't' //如果在参数中有指定
--tflag;
break;
if (tflag > 0)
thiszone = gmt2local(0);
util.c
void
ts_print(register const struct timeval *tvp)
{
register int s;
struct tm *tm;
time_t Time;
static unsigned b_sec;
static unsigned b_usec;
switch(tflag) {
case 1: /* Default */
s = (tvp->tv_sec + thiszone) % 86400;
(void)printf("%02d:%02d:%02d.%06u ",
s / 3600, (s % 3600) / 60, s % 60,
(unsigned)tvp->tv_usec);
break;
case -1: /* Unix timeval style */
(void)printf("%u.%06u ",
(unsigned)tvp->tv_sec,
(unsigned)tvp->tv_usec);
break;
case -2:
if (b_sec == 0) {
printf("000000 ");
} else {
int d_usec = tvp->tv_usec - b_usec;
int d_sec = tvp->tv_sec - b_sec;
while (d_usec < 0) {
d_usec += 1000000;
d_sec--;
}
if (d_sec)
printf("%d. ", d_sec);
printf("%06d ", d_usec);
}
b_sec = tvp->tv_sec;
b_usec = tvp->tv_usec;
break;
case -3: /* Default + Date*/
s = (tvp->tv_sec + thiszone) % 86400;
Time = (tvp->tv_sec + thiszone) - s;
tm = gmtime (&Time);
if (!tm)
printf("Date fail ");
else
printf("%04d-%02d-%02d ",
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday);
printf("%02d:%02d:%02d.%06u ",
s / 3600, (s % 3600) / 60, s % 60, (unsigned)tvp->tv_usec);
break;
}
}
分享到:
相关推荐
tcpdump是一款广泛使用的开源网络数据包分析工具,它允许用户实时捕获并分析网络上的数据包。这个资源包含了tcpdump的4.0和3.9两个版本的源代码,对于理解网络协议、学习网络监控以及进行网络调试具有极高的价值。 ...
tcpdump源码编译,需要多个部件的源码进行顺序编译而成。 m4-1.4.19.tar.gz flex-2.6.4.tar.gz bison-3.7.6.tar.gz libpcap-1.10.4.tar.gz tcpdump-4.99.4.tar.gz tar xvf *.tar解压后,分别执行./configure 和make ...
tcpdump是一款广泛使用的开源网络分析工具,主要用于在网络中捕获和分析数据包。它能够帮助系统管理员、网络工程师以及安全专家深入理解网络流量,诊断问题,进行故障排除,以及进行网络安全监控。tcpdump的源码提供...
tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获网络上的数据包,并进行分析。在Linux或类Unix操作系统上,tcpdump是标准的网络诊断工具,能够帮助用户深入理解网络流量,查找...
tcpdump是一款广泛使用的网络数据包分析工具,它允许系统管理员或网络工程师实时捕获网络上的数据包,并对其进行分析。在网络安全、故障排查和性能优化等领域,tcpdump扮演着至关重要的角色。最新版本的tcpdump源码...
标题中的“Reader读取TcpDump读取的Pcap包”涉及到的是网络数据包捕获和分析的技术。TcpDump是一款广泛使用的命令行工具,用于在各种操作系统上捕获网络流量,生成pcap(Packet Capture)格式的数据包文件。Pcap文件...
libpcap和tcpdump是网络监控和数据包分析领域中的两个关键开源工具。它们在IT行业中扮演着重要的角色,尤其对于网络管理员、安全专家以及软件开发者来说,它们是理解和调试网络流量不可或缺的工具。 libpcap是...
4.9.2版本的tcpdump源码提供了深入理解其工作原理的机会,对于网络管理员、程序员和网络安全专家来说,这是一个宝贵的资源。源码分析可以帮助我们了解数据包捕获、解析和过滤的底层机制。 首先,tcpdump的核心是...
Tcpdump 4.5.1版本,解压后是一个二进制可执行文件,不需要任何编译和安装,可以直接执行,上传Linux环境解压即可使用: root@admin:/tmp# ./tcpdump -help tcpdump version 4.5.1 libpcap version 1.5.3 Usage: ...
### Tcpdump命令详解 #### 一、Tcpdump简介与安装 Tcpdump是一款广泛应用于网络监控的强大工具,主要用于抓取网络中的数据包,并对其进行分析。它能够帮助系统管理员追踪网络问题,进行安全审计以及网络流量分析等...
1. **下载源码**:从官方网站或FTP服务器下载TCPDUMP和libpcap的源码包。例如: ``` wget ftp://ftp.ee.lbl.gov/tcpdump.tar.Z wget ftp://ftp.ee.lbl.gov/libpcap.tar.Z ``` 2. **解压源码包**: ``` zcat ...
tcpdump是一款广泛使用的开源网络数据包分析工具,用于捕获和分析网络上的数据包。它在IT领域中扮演着至关重要的角色,特别是在网络诊断、安全审计和协议开发中。tcpdump-4.9.2是该软件的一个版本,此版本可能包含了...
大家看看,一个工具的源码,不怎么看得懂,大家研究下
tcpdump是一款强大的网络数据包分析工具,主要用于在网络层面捕获和分析网络流量。它可以帮助系统管理员、网络工程师或安全专家监控网络活动,检测潜在的问题,甚至进行网络安全审计。以下是tcpdump的一些关键用法和...
TCPDump 是一款强大的网络封包分析软件,广泛用于网络故障排查、网络安全分析和性能测试等领域。在Linux系统中,TCPDump通常预装在发行版中,便于用户进行网络抓包工作。它允许用户以命令行方式捕获网络接口上的...
TCPDUMP抓包程序是一种强大的网络诊断工具,主要用于捕获和分析网络中的数据包。它由C#语言编写,利用了SharpCap库,能够帮助网络管理员、开发人员和安全专家理解网络流量,检测潜在的问题,如性能瓶颈、安全威胁或...
tcpdump是一款强大的网络数据包分析工具,主要用于在网络中捕获和分析网络协议数据包。在Android平台上,tcpdump同样能够发挥作用,帮助开发者、网络安全人员以及普通用户了解网络通信的细节,排查网络问题,或者...
1. **下载压缩包**:首先,你需要从一个可靠的源下载包含TCPDump的压缩包。 2. **解压缩**:使用命令行工具(如tar或unzip)解压下载的文件,通常命令为`tar -zxvf 文件名.tar.gz` 或 `unzip 文件名.zip`。 3. **...