호스트 주소 정보 얻기
Java에서는 InetAddress 클래스를 사용하여 호스트 이름 및 숫자 주소 정보를 포함한 대상 네트워크 주소를 나타내며 InetAddress의 인스턴스는 변경할 수 없으며 각 인스턴스는 항상 주소를 가리킵니다. InetAddress 클래스에는 두 개의 IP 주소 버전에 해당하는 두 개의 하위 클래스가 포함되어 있습니다.
다음과 같이 코드 코드를 복사합니다.
Inet4주소
Inet6주소
이전 참고 사항에서 알 수 있습니다. IP 주소는 실제로 호스트 자체가 아닌 호스트와 네트워크 간의 연결에 할당됩니다. NetworkInterface 클래스는 호스트의 모든 인터페이스에 대한 정보에 액세스하는 기능을 제공합니다. 아래에서는 간단한 예제 프로그램을 사용하여 네트워크 호스트의 주소 정보를 얻는 방법을 배웁니다.
다음과 같이 코드 코드를 복사합니다.
importjava.net.*;
importjava.util.Enumeration;
publicclassInetAddress예{
publicstaticvoidmain(String[]args){
//TODO자동 생성된 메서드 스텁
노력하다{
//호스트 네트워크 인터페이스 목록을 가져옵니다.
열거<NetworkInterface>인터페이스목록=NetworkInterface
.getNetworkInterfaces();
//인터페이스 목록이 비어 있는지 확인합니다. 호스트에 다른 네트워크 연결이 없더라도 루프백 인터페이스(loopback)가 존재해야 합니다.
if(인터페이스목록==null){
System.out.println("--인터페이스를 찾을 수 없습니다--");
}또 다른{
while(interfaceList.hasMoreElements()){
//각 인터페이스의 주소를 얻어서 출력합니다.
NetworkInterfaceiface=인터페이스목록.nextElement();
//인터페이스 이름 출력
System.out.println("인터페이스"+iface.getName()+";");
//인터페이스에 연결된 주소를 가져옵니다.
열거<InetAddress>addressList=iface
.getInetAddresses();
//비어 있는지 여부
if(!addressList.hasMoreElements()){
System.out.println("/t(이 인터페이스와 관련된 주소가 없습니다)");
}
//목록 반복, 각 주소 출력
while(addressList.hasMoreElements()){
InetAddressaddress=addressList.nextElement();
시스템아웃
.print("/t주소"
+((주소인스턴스ofInet4Address?"(v4)"
:addressinstanceofInet6Address?"v6"
:"(?)"))));
System.out.println(":"+address.getHostAddress());
}
}
}
}캐치(소켓예외){
System.out.println("네트워크 인터페이스 가져오기 오류:"+se.getMessage());
}
//명령줄에서 입력한 각 매개변수에 해당하는 호스트 이름과 주소를 가져오고 목록을 반복하여 인쇄합니다.
for(Stringhost:args){
노력하다{
System.out.println(host+":");
InetAddress[]addressList=InetAddress.getAllByName(호스트);
for(InetAddress주소:주소목록){
System.out.println("/t"+address.getHostName()+"/"
+address.getHostAddress());
}
}catch(UnknownHostExceptione){
System.out.println("/t주소를 찾을 수 없습니다:"+host);
}
}
}
}