InetAddressクラス
InetAddressクラスは、デジタルIPアドレスと前述のアドレスのドメイン名をカプセル化するために使用されます。
IPホスト名を介してこのクラスと対話することができます。これは、IPアドレスよりも簡単で理解しやすいです。
アドレス番号は、InetAddressクラス内に隠されています。
InetAddressクラスの工場メソッド
InetAddressクラスには、明らかなコンストラクターがありません。 InetAddressオブジェクトを生成するには、利用可能な工場メソッドを使用する必要があります。
ファクトリーメソッドは、クラスの静的メソッドがそのクラスのインスタンスを返すための慣習にすぎません。
InetAddressの場合、3つの方法:getLocalHost()、getByname()、およびgetAllByName()を使用して、InetAddressのインスタンスを作成できます。
getLocalHost()は、localhostを象徴するinetAddressオブジェクトのみを返します。
ローカルアドレスもローカルホスト、127.0.0.1であり、これらの3つのアドレスは同じです。
getByname()メソッドは、ホスト名に渡されたInetAddressを返します。
これらのメソッドがホスト名を解決できない場合、不明なHostexception例外を提起します。
インターネットでは、1つの名前を使用して複数のマシンを表すことが一般的です。
getallbyname()Factoryメソッドは、特別な名前で分解されたすべてのアドレスを表すInetAddressesクラスの配列を返します。
名前を少なくとも1つのアドレスに分解できない場合、Unknownhostexceptionの例外が発生します。
プログラムの例
inetAddressTest01
パッケージcom.example.network; import java.net.inetadress; public inetaddresstest01 {public static void main(string [] args){inetAddress address = inetAddress.getLocalHost(); /出力:マシン名/IPアドレス//たとえば、username-pc/10.4.16.131 //ドメイン名を介してIPアドレスを取得= inetAddress.getByname( "www.sohu.com"); (アドレス); / /出力:ドメイン名 /IPアドレス}} InetAddressクラスを使用して、特別なIPアドレスを決定します
IPアドレスは、通常のアドレスと特別なアドレスに分割されます。以前の記事のほとんどは、通常のIPアドレスです。この記事では、InetAddressクラスが提供する10のメソッドを使用して、IPアドレスが特別なIPアドレスであるかどうかを紹介します。
1。イサニラカラドレス法
IPアドレスがワイルドカードアドレスである場合、TRUEでは、このワイルドカードアドレスが複数のネットワークインターフェイス(2つのネットワークカードなど)が非常に所有しています。ワイルドカードアドレスを使用すると、任意のネットワークインターフェイスからのクライアント接続をサーバーホストで受け入れることができます。 IPv4のワイルドカードアドレスは0.0.0.0です。 ::。
2。ISLOOPBACKADDRESSメソッド
IPアドレスがループバックアドレスである場合にtrueを返し、それ以外の場合はfalse.loopbackアドレスを返します。ループバックアドレスはマシンのIPアドレスを表します。 IPv4のループバックアドレスの範囲は、最初のバイトが127である限り、127.0.0.0〜127.255.255.255です。たとえば、127.1.2.3および127.0.200.200はループバックアドレスです。 IPv6のループバックアドレスは0:0:0:0:0:0:0:1です。または、Pingコマンドを使用してルックバックアドレスをテストできます。次のコマンドラインに示されているように:
ping 127.200.200.200
実行結果:
127.0.0.1からの返信:バイト= 32時間<1ms TTL = 128(注:127.200.200.200未満のWin7)127.0.0.1からの返信= 32時間<1ms ttl = 128reply 127.0.0.1:32時間<1ms <1ms <1ms TTL = 128REPLY 127.0.0.1から:バイト= 32時間<1MS TTL = 128の統計統計統計:パケット:送信= 4、受信= 4、失われた= 0(0%損失)、100万の近似往復時間 - 秒:最小= 0ms、最大= 0ms、平均= 0ms
127.255.255.255もループバックアドレスですが、127.255.255.255はWindowsの下ではpingできません。これは、127.255.255.255がブロードキャストアドレスであるためです。
iii islinklocaladdressメソッド
IPアドレスがローカル接続アドレス(LinkLocalAddress)である場合、IPv4のローカル接続アドレスの範囲は169.254.0.0〜169.254.255.255です。 BITSは、Fe88:およびFe80 :: ABCD ::など、すべてのローカル接続アドレスなど、任意の値であることができます。
IV
IPアドレスが地域のローカルアドレス(SiteLocalAddress)である場合にtrueを返します。それ以外の場合は、false.ipv4を返すアドレスのアドレスが3つのセグメントに分割されます:10.0.0.0〜10.255.255.255、172.16.0.0〜172.31.255.255、 192.168.0.0〜192 .168 IPv6のローカルアドレスの最初の12ビットはFECであり、他のビットはFed0 ::およびFEF1 ::などの値になります。
5。ISMULTICASTADDRESSメソッド
TRUE IPアドレスがブロードキャストアドレス(MultiCastAddress)である場合、それ以外の場合は、ブロードキャストアドレスを介して返されます。 IPv4の放送アドレスの範囲は224.0.0.0〜239.255.255.255.255.255です。ブロードキャストアドレスの詳細については、将来の章で説明します。
6。ISMCGLOBALメソッド
IPアドレスがグローバルブロードキャストアドレスである場合、TRUEでは、虚偽を返すことができます。 IPv4ブロードキャストアドレスは、IPアドレス224.0.0.0を除き、グローバルブロードキャストアドレスであり、最初のバイトは239です。 IPv6のグローバルブロードキャストアドレスの最初のバイトはff、2番目のバイトは0e〜feであり、他のバイトはffbe :: :: ff0e ::などのすべての値になります。
7。ISMCLINKLOCALメソッド
IPアドレスがサブネットブロードキャストアドレスである場合、サブネットを使用してブロードキャストアドレスを返す場合は、サブネットのコンピューターにのみ情報を送信できます。 IPv4のサブネットブロードキャストアドレスの範囲は224.0.0.0〜224.0.0.255です。 ::およびFF02:ABCD ::はすべてサブネットブロードキャストアドレスです。
8。ISMCNODELOCALメソッド
IPアドレスがローカルインターフェイスブロードキャストアドレスである場合、falseを返します。すべてのIPv4ブロードキャストアドレスは、ローカルインターフェイスブロードキャストアドレスではありません。 IPv6のローカルインターフェイスブロードキャストアドレスの最初のバイトはFF、2番目のバイトの範囲は01〜F1であり、他のバイトはFFB1 ::やFF01:A123 ::などの値になります。ブロードキャストアドレス。
9。ISMCORGLOCALメソッド
IPアドレスが組織全体のブロードキャストアドレスである場合、それ以外の場合は、組織全体のブロードキャストアドレスを使用して、会社またはエンタープライズ内のすべてのコンピューターにブロードキャスト情報を送信します。 IPv4の組織全体のブロードキャストアドレスの最初のバイトは239、2番目のバイトは192以上で、3番目のバイトは195以上ではありません。たとえば、239.193.100.200および239.192.195.0はすべて組織全体のブロードキャストです。アドレス。 IPv6の組織全体のブロードキャストアドレスの最初のバイトはFF、2番目のバイトの範囲は08〜F8であり、他のバイトはFF08 ::やFF48 ::など、すべての組織全体のブロードキャストです。 。 住所。
10。ISMCSITELOCALメソッド
IPアドレスがサイト全体のブロードキャストアドレスである場合、サイト全体のブロードキャストアドレスを使用している場合、ブロードキャスト情報をサイト全体のコンピューターに送信できます。 IPv4のサイト全体のブロードキャストアドレスの範囲は、239.255.0.0〜239.255.255.255です。たとえば、239.255.1.1および239.255.0.0はすべてサイト全体の放送アドレスです。 IPv6サイト全体のブロードキャストアドレスの最初のバイトはFF、2番目のバイトの範囲は05〜F5であり、他のバイトはFF05 ::やFF45 ::など、すべてサイト全体のブロードキャストです。住所。
次のコードでは、IPアドレスが上記の10のアドレスタイプの範囲内にあるかどうかを判断できます。
パッケージテスト; import java.net。*; import java.lang.refllect。*; public static void main(string [] args)スロー{if(ar gs.length == 0)return; = inetAddress.getByname(args [0]); Matches( "is。*")&& method.getParametertypes()。length == 0){if(boolean.parseboolean(method.invoke(address).tostring())system.out.println(method.g etname( ) + "= true");テスト1
次のコマンドを実行します。
Java Test.Mynet 224.0.0.1
実行結果:
ismclinklocal = trueismulticastaddress = true
テスト2
次のコマンドを実行します。
Java test.mynet ffb1 ::
実行結果:
ismcnodelocal = true ismulticastaddress = true