所以我的问题是我需要制作一个脚本来找到生存时间和用户代理按该顺序发生的模式,然后我增加一个计数(或获取我想要的数据等;它可能会从那里演变。)
例如:
Time to live: 64
Some other data: ________
...
User-Agent: Mozilla/Chrome/IE:Windows/Unix/Mac
所以基本上数据按照 TTL 然后是用户代理的顺序出现,从这些信息中我可以获取我想要的数据,但我不知道如何处理模式来识别它。如果有帮助,我将从保存为文本文件的 Wireshark 捕获中获取此数据。
多亏了 Shellter,我才达到了以下目标:
egrep ' User-Agent:| Time to live:' ../*.txt
它会查找(TTL 和 UA)是否都在文件中。
我会很感激任何帮助。
Fragment offset: 0
Time to live: 128
Protocol: TCP (6)
Header checksum: 0x7e4d [correct]
[Good: True]
[Bad: False]
Source: 1.1.1.3 (1.1.1.3)
Destination: 1.1.1.4 (1.1.1.4)
//packet 2
Fragment offset: 0
Time to live: 128
Protocol: TCP (6)
Hypertext Transfer Protocol
GET / HTTP/1.1\r\n
[Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n]
[Message: GET / HTTP/1.1\r\n]
[Severity level: Chat]
[Group: Sequence]
Request Method: GET
Request URI: /
Request Version: HTTP/1.1
Host: mail.yahoo.com\r\n
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0\r\n
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n
我很抱歉回复慢,我不得不做一些编辑。
所以基本上我只需要确定何时仅发生 TTL,何时发生 TTL 并且有用户代理数据;基本上我用它来识别网关后面的客户端。
因此,如果 TTL 为 126(windows)并且我看到 125,我们假设它位于网关和 count++ 后面。如果我们得到相同的计数,但使用不同的用户代理但操作系统相同,则计数不会改变。如果我们得到相同的计数但使用不同的用户代理和操作系统,count++。
所以输出可以很简单:
1 (ttl)
1 (ttl+os)
2 (ttl+os+ua)
从上面的例子(不是数据)。