0

重複の可能性:
DNS ホスト名または IP アドレスに一致する正規表現?

メールヘッダーから IP アドレスを取得するには、正規表現が必要です。受信セクションの下にたくさんのヘッダーがあります。

しかし、このようなパターンを持つ行からのみ ipaddress を読み取りたいです。

Received: from unknown 124.253.91.178 by rediffmail.com via HTTP; 11 Jan 2013 10:10:35 -0000

以下の正規表現を試しましたが、メールヘッダーテキストのすべての IP アドレスが返されます。

 preg_match_all("/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/", $this->email, $matches); 

Received:1行でfrom単語とIPアドレスを一致させたい 。IP アドレスは IPv6 または IPv4 にすることができます

4

1 に答える 1

1

次の正規表現を試すことができます。

/^Received: .*?(\d{1,3}(?:\.\d{1,3}){3}))/

IPv4 と IPv6 の両方の正規表現:

/^Received: .*?((?:\d{1,3}(?:\.\d{1,3}){3})|([a-z0-9]{4}(?::[a-z0-9]{4}){7}))/
于 2013-01-11T13:53:44.643 に答える