Webプログラミング研究所〜初心者・中級者Webプログラマ(CGI・Perl・PHP・Javaプログラム言語)のための支援サイト〜 「Webプログラミング研究所」TOPへ 「Webプログラミング研究所」TOPへ
 
「プログラミングサンプル集」TOPへ 「プログラミングサンプル集」TOPへ
 
目次をフレームで表示 目次をフレームで表示
 

ホスト名からIPアドレスを取得する

 
概要
 
Perl gethostbyname()関数を使用します。

サンプルソース
#IPアドレスを取得したいホスト名
$host = "www.yahoo.co.jp";

#ホスト名からサーバのネットワーク情報を取得する
($name, $aliases, $addrtype, $length, @addrs) = gethostbyname($host);

foreach $addr (@addrs) {
  @arr = unpack("C4", $addr);
  #配列@arrには、IPアドレスを「.」で区切った数値が格納されています。
  $ip = join(".", @arr);
  print $ip . "\n";
}

gethostname()関数の使い方は次のとおりです。

 ($name, $aliases, $addrtype, $length, @addrs) = gethostbyname($hosts);
  引数: $str_host_name ホスト名
  戻り値:
$name 基準となるホスト名。
$aliases エイリアス。
$ddrtype アドレスタイプ。通常はインターネットアドレスファミリ(AF_INET )を表す"2"が格納されます。
$length アドレスのバイト数。IPv4の場合は"4"です。
@addrs packされたIPアドレスのリスト。

実行結果
202.229.198.216
202.229.199.136
203.141.35.113
210.81.3.241
210.81.150.5
211.14.15.5
 
PHP gethostbynamel()関数を使用します。

サンプルソース
<?php
  //IPアドレスを取得したいホスト名
  $host = "www.yahoo.co.jp";

  //ホスト名からIPアドレスのリストを取得します。
  $arr_ip = gethostbynamel($host);

  foreach($arr_ip as $str_ip) {
    echo $str_ip . "\n";
  }
?>

NOTE
"gethostbyname()"という関数も存在しますが(関数名の最後に"l"(エル)が付いていない)、この関数はホスト名に対するIPアドレスを1つだけ返します。よって、ホスト名に対するIPアドレスが複数の場合はいずれか1つのIPアドレスのみ返すため注意してください。

gethostbynamel (ホスト名に対するIPアドレスのリストを取得する)
 $arr_ipaddr = gethostbynamel($str_host_name);
  引数: $str_host_name ホスト名
  戻り値:$arr_ipaddr IPアドレスの配列

gethostbyname (ホスト名に対するIPアドレスを取得する。IPアドレスが複数の場合はいずれか1つを取得)
 $str_ipaddr = gethostbynamel($str_host_name);
  引数: $str_host_name ホスト名
  戻り値:$arr_ipaddr IPアドレス

実行結果
202.229.198.216
202.229.199.136
203.141.35.113
210.81.3.241
210.81.150.5
211.14.15.5
 
Java java.net.InetAddressクラスのgetAllByName()メソッドを使用します。

サンプルソース
import java.net.InetAddress;
import java.net.UnknownHostException;

public class NetworkHost2IP {
  public static void main(String[] args) {
    //IPアドレスを取得したいホスト名
    String host = "www.yahoo.co.jp";

    try {
      InetAddress[] addr = InetAddress.getAllByName(host);

      for(int i=0; i<addr.length; i++) {
        String ip = addr[i].getHostAddress();
        System.out.println(ip);
      }
    } catch(UnknownHostException e) {
    }
  }
}

実行結果
202.229.198.216
202.229.199.136
203.141.35.113
210.81.3.241
210.81.150.5
211.14.15.5
 
NOTE
 
ご意見箱コーナー (管理者宛てメール)
このページは、あなたの参考になりましたか?

参考になった  どちらともいえない  あまり参考にならなかった

ご意見・ご感想・ご要望がありましたら、ご記入いただければ幸いです。
今後のコンテンツ作成、ページ改善等の参考にさせていただきます。

 


Webプログラマになりたい人のためのスクール・講座情報

クリエイターの皆さん!お仕事ありますよ!フェローズに!

パソコンスクールガイド
積極的な情報収集が目標実現の近道です。

就職・起業・SOHO・それとも副業? デジハリがノウハウを伝授!

就転職に強い、資格取得スキルアップ専門校ヒューマンアカデミー

CsideNet レンタルサーバー サブドメイン型 780円/月
CGI/SSI/PHP、データベース(MySQL)が利用できます。1週間の試用期間があるのがGood!!

転職・派遣・就職・アルバイトの求人情報検索支援サイト 〜 14ALL JOB SEARCH 〜
 
 
  「Webプログラミング研究所」TOPへ 「Webプログラミング研究所」TOPへ
 
「プログラミングサンプル集」TOPへ 「プログラミングサンプル集」TOPへ
 
目次をフレームフレームで表示 目次をフレームで表示

Copyright (C) 2004 - 2005 IWAMODE Project All Rights Reserved.