私はこのサイトを運営しており、サイトのセクションへのアクセスを承認しています。静的 IP のみを承認したい。たくさんの IP がある場合、それらが静的かどうかを確認するにはどうすればよいですか? 残りの部分は実行できますが、おそらくソケット ライブラリに何らかの機能があるか、ユーザーが静的 IP を使用しているか動的 IP を使用しているかを調べるためにその部分をスクリプト化できる何かが存在します。
ありがとう !
Php/Js も動作します。
私はこのサイトを運営しており、サイトのセクションへのアクセスを承認しています。静的 IP のみを承認したい。たくさんの IP がある場合、それらが静的かどうかを確認するにはどうすればよいですか? 残りの部分は実行できますが、おそらくソケット ライブラリに何らかの機能があるか、ユーザーが静的 IP を使用しているか動的 IP を使用しているかを調べるためにその部分をスクリプト化できる何かが存在します。
ありがとう !
Php/Js も動作します。
IP アドレスが静的か動的に割り当てられているかを本質的に判断する方法はありません。IP が解決されるホスト名に基づいて、おそらくそれらが静的かどうかを推測できますが、これを容易にする決定的なものはありません。
socket モジュールを使用して IP をホスト名に解決し、ある種の「最善の推測」アルゴリズムに基づいて「静的」または「動的」としてフラグを立てることができますが、それはそれだけです: 最善の推測.
ランダムな Verizon FiOS IP アドレスを使用した例を次に示します。これは、「pool」で始まるすべての IP が動的に割り当てられることを前提としています。
>>> hostname = socket.gethostbyaddr('71.243.222.111')[0]
>>> if 'pool' in hostname:
... print hostname, 'is dynamic'
...
pool-71-243-222-111.lsanca.fios.verizon.net is dynamic
さまざまな命名規則をすべて決定するのは非常に困難であり、これは決して完全な解決策ではありません。
最初に解決しようとしている問題の種類と、IP アドレスによるアクセスのフィルタリングが必要な種類の検証を提供しているかどうかを自問することをお勧めします。
実用的な解決策を使用します。新しいアカウントには数日間の試用期間があります。その後、サインアップに使用したのと同じ IP からのみログインできます。彼らがまだ同じ IP を持っている場合、それは静的である可能性が最も高いです。
まあ、問題ありませんよね?彼らが IP X からのアクセスを要求した場合は、IP X からのアクセスを許可します。それが動的であることが判明し、切り替えた場合、彼らはアクセスできなくなります。実際には、動的IPからのアクセスはありません:)
真剣に、IP割り当てタイプの権限は、ユーザーがアクセスしているホストです。したがって、ユーザーの構成に何と書かれているのかをユーザーに尋ねる必要があります。