-5

私の質問に投票しないでください。

私はこのページhttp://www.iptrackeronline.com/email-header-analysis.phpのようなメールヘッダーを分析するためのツールを作成しています。

正規表現を使用してユーザーのIPアドレスを取得しています。しかし、「Received」ヘッダーセクションにはたくさんのIPアドレスがあります。他のすべてのIPアドレスを無視して、ユーザーの元のIPアドレスを取得したいと思います。

サンプルの電子メールヘッダー:IP-70.183.59.6

Return-path: <user@example.com>
Received: from mac.com ([10.13.11.252])
  by ms031.mac.com (Sun Java System Messaging Server 6.2-8.04 (built Feb 28
  2007)) with ESMTP id <0JMI007ZN7PETGC0@ms031.mac.com> for user@example.com; Thu,
  09 Aug 2007 04:24:50 -0700 (PDT)
Received: from mail.dsis.net (mail.dsis.net [70.183.59.5])
  by mac.com (Xserve/smtpin22/MantshX 4.0) with ESMTP id l79BOnNS000101
  for <user@example.com>; Thu, 09 Aug 2007 04:24:49 -0700 (PDT)
Received: from [192.168.2.77] (70.183.59.6) by mail.dsis.net with ESMTP
  (EIMS X 3.3.2) for <user@example.com>; Thu, 09 Aug 2007 04:24:49 -0700
Date: Thu, 09 Aug 2007 04:24:57 -0700
From: Frank Sender <sender@example.com>
Subject: Test
To: Joe User <user@example.com>
Message-id: <61086DBD-252B-46D2-A54C-263FE5E02B41@example.com>
MIME-version: 1.0 (Apple Message framework v752.2)
X-Mailer: Apple Mail (2.752.2)
Content-type: text/plain; charset=US-ASCII; format=flowed
Content-transfer-encoding: 7bit

IPアドレスを取得できる電子メールパーサーを知っている場合は、リンクを教えてください。

4

1 に答える 1

2

実際、これは正規表現なしの方が簡単だと思います。これらのヘッダーは行として編成されているため、行を上から下に繰り返し、行の最初の単語に基づいて行を格納します。

Received:ヘッダーは常に逆の順序になっています。つまり、上から下に読み取る場合、最後に表示されるのは送信者に最も近いサーバーです。つまり、そのReceived:レコードが必要な場合は、それを1つのエントリとして保存し、以前に発生したものを上書きすることができます。

最後の注意:ヘッダーにX-Originating-IPヘッダーが含まれている場合、そのヘッダーには実際の送信者のIPアドレスが含まれます。

于 2013-01-10T12:37:20.160 に答える