netipaddressdemo2.java

来自「java程序设计语言源代码」· Java 代码 · 共 43 行

JAVA
43
字号
//Example 2 of Chapter 9

import java.net.*;

public class NetIpAddressDemo2
{
	public static int getLength( InetAddress ia )
	{
		byte[] address = ia.getAddress();
		if( address.length == 4 ) return 4;
		else if( address.length == 16 ) return 16;
		else return -1;
	}
	
	public static char getKind( InetAddress ia )
	{
		byte[] address = ia.getAddress();
		if( address.length != 4 )
		{
			throw new IllegalArgumentException( "No IPv6 addresses!" );
		}
		int firstByte = address[ 0 ];
		if( ( firstByte & 0x80 ) == 0 ) return 'A';
		else if( ( firstByte & 0xC0 ) == 0x80 ) return 'B';
		else if( ( firstByte & 0xE0 ) == 0xC0 ) return 'C';
		else if( ( firstByte & 0xF0 ) == 0xE0 ) return 'D';
		else if( ( firstByte & 0xF8 ) == 0xF0 ) return 'E';
		else return 'F';
	}
	
	public static void main(String args[])
	{
		try{
			InetAddress ia = InetAddress.getByName( "www.microsoft.com" );
			System.out.println( "IP地址长度为:" + getLength( ia ) );
			System.out.println( "IP地址种类为:" + getKind( ia ) );
		}
		catch(UnknownHostException e)
		{
			System.err.println( e );
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?