2009-08-07 12 views
1

私が大学にいた場合、特定のコードをアクティブにするように求められました。だから私はどこで私の大学iPに合っているのiPを見つける必要があります。 Javaでこれを行う方法wonderngですか?私はすでにループバックインターフェイスを試しています。ip address in java

+0

あなたは何をしようとしているのかもう少し詳しく説明できますか?アクティベートとマッチによってあなたはどういう意味ですか? –

+0

私が大学にいたら、私は大学外のリンクを検索するために自動的にプロキシを有効にすることを意図しています。だから私は私の大学のiPの範囲にそれを比較して私のiPを取得し、次に続行する必要があります。問題は私の戻り値iPが127.0.1.1に登場することです –

答えて

3

NetworkInterface.getNetworkInterfaces()を使用し、各インターフェイスでgetInetAddresses()を呼び出すと、コンピュータに割り当てられているすべてのIPアドレスを確認できます。あなたはあなたの大学の範囲のIPを持っているかどうかを確認するには、このような何か行うことができます:

boolean onCampusNetwork() { 
    for(Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements();) { 
     NetworkInterface iface = ifaces.nextElement(); 
     for(Enumeration<InetAddress> addresses = iface.getInetAddresses(); addresses.hasMoreElements;) { 
      InetAddress address = addresses.nextElement(); 
      // return true if address is in the university's range; something like: 
      if(address.toString().startsWith("10.0")) { 
       return true; 
      } 
     } 
    } 
    // None of the IP addresses were in the university's range. 
    return false; 
} 

私はこのコードを実行していないが、それはあなたが必要なものを行う必要があります。

0

パブリックIP(またはあなたのゲートウェイのパブリックIP、あなたが望むものと想定しているもの)を与えるすべての種類のウェブサイトがあります。これらのサイトの1つにHTTP接続を行い、その情報を持つページを取得するようにプログラムに指示できます。これらのサイトは非常に予測可能な形式なので、結果は正規表現または2つで解析するのが非常に簡単です。あなたがインターネットに接続している場合にのみこれは動作します。

また、大学のイントラネットサーバーのいずれかに接続しようとすることもできます。外部からアクセスできないサイトに接続できる場合は、LAN上にあります。

関連する問題