だから私の問題は、Time to live と User-Agent がその順序で発生するパターンを見つけるスクリプトを作成する必要があることです。
例えば:
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++ であると想定します。同じカウントを取得しても、ユーザー エージェントが異なり、OS が同じである場合、カウントは変わりません。同じカウントを取得しても、ユーザー エージェントと OS が異なる場合は、count++.
したがって、出力は次のように単純になります。
1 (ttl)
1 (ttl+os)
2 (ttl+os+ua)
上記の例(データではありません)から。