0

実際、これを Apache アクセス ログ ファイルに使用したいという事実は恣意的で無関係ですが、状況にコンテキストを与えます。

Comcast IP アドレスに関連付けられたレコードを除外する必要があります。Comcast が割り当てる動的 IP アドレス範囲のリストを次に示します。それらすべてに一致する正規表現が必要です。それまでの間、私は自分でそれに取り組みますが、SOには問題を楽しむRegExの第一人者がいると思いました。

4

2 に答える 2

2

正規表現ソリューションは可能ですが、サブネット マスクが 8 の倍数ではないため、非常に面倒です。リストを処理して正規表現に変換する関数を作成する必要があります。

正規表現を使用して IP アドレスを取得し、Comcast による IP アドレスのリストに対して IP アドレスをテストすることをお勧めします。単純な実装は、引数よりも小さい最も近い数を検索できるようにするセットです。

于 2012-06-28T13:57:24.737 に答える
1

それはたくさんのIPアドレスです。

たとえば、IP 範囲-を24.0.0.0/12定義します。これらの数値範囲を正規表現と一致させるには:24.0.0.124.15.255.255

24:    24
0-15:  [0-9]|1[0-5]
0-255: [0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]

どちらが与える

(24)\.([0-9]|1[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])

24.0.0.0/12あと , 293 です。

本当にこれを行いたい場合は、各 IP 範囲を自動的に正規表現に変換する小さなスクリプトを作成する必要があります。

別のアプローチは、任意の IP アドレスを照合し、適切なモジュール/フレームワーク/API を使用して照合を行うコールバックにフィードすることです。

于 2012-06-28T14:04:55.660 に答える