IPアドレスに対応づけられたホスト名を取得したり、ホスト名に割り振られたIPアドレスを取得するための関数が用意されています。 ▼ 指定したIPアドレスからホスト名を取得 ウェブサーバにアクセスしてくる時には必ず環境変数「REMOTE_ADDR」がセットされるのを利用して、これをホスト名に変換する例は以下のとおり。 ▼ 指定したホスト名からIPアドレスを取得 ウェブサーバにアクセスしてくる時には必ず環境変数「REMOTE_HOST」がセットされているとは限らない(取得しに行かない設定になっていたり、ホスト名自体を持たないものだったり)ので、以下のようにしても取得できない場合があります。
IPアドレスに対応づけられたホスト名を取得したり、ホスト名に割り振られたIPアドレスを取得するための関数が用意されています。
▼ 指定したIPアドレスからホスト名を取得
ウェブサーバにアクセスしてくる時には必ず環境変数「REMOTE_ADDR」がセットされるのを利用して、これをホスト名に変換する例は以下のとおり。
▼ 指定したホスト名からIPアドレスを取得
ウェブサーバにアクセスしてくる時には必ず環境変数「REMOTE_HOST」がセットされているとは限らない(取得しに行かない設定になっていたり、ホスト名自体を持たないものだったり)ので、以下のようにしても取得できない場合があります。
プロクシ経由からはアクセス元のIPアドレスを取得できない場合が多くなります。 できるだけアクセス元のIPアドレスを取得するよう努力するコードを書いてみます。 これを使って得たIPアドレスをホスト名に変換すれば、環境変数「REMOTE_HOST」よりも多少はリアルな情報になるかも? $host = gethostbyaddr(realaddr()); 前述したとおり、アクセスしてくる中にはホスト名がないものもあるのでその場合にはIPアドレスを返すような関数を作っておきます。 よくあるアクセス制限では、ホスト名が取得できてなおかつドメインが特定の条件を満たしていなければハネるなどがあります。 // ホスト名が .com と .jp 以外ならアクセス制限 if (!preg_match('/\.(?:com|jp)$/D', realhost(realaddr()))) { echo 'ただいま混みあっています。(Busy now!)'; exit; }
プロクシ経由からはアクセス元のIPアドレスを取得できない場合が多くなります。
できるだけアクセス元のIPアドレスを取得するよう努力するコードを書いてみます。
これを使って得たIPアドレスをホスト名に変換すれば、環境変数「REMOTE_HOST」よりも多少はリアルな情報になるかも?
前述したとおり、アクセスしてくる中にはホスト名がないものもあるのでその場合にはIPアドレスを返すような関数を作っておきます。
よくあるアクセス制限では、ホスト名が取得できてなおかつドメインが特定の条件を満たしていなければハネるなどがあります。