2014-12-10 4 views
1

서버 소켓을 연 후에 다른 사람이 연결할 수있는 IP 주소에 액세스하고 싶습니다. 전화 할 때Java - ServerSocket IP 주소

ServerSocket seso = new ServerSocket(port); 
System.out.println(seso.getInetAddress()); 

회색 마스크 만 표시됩니다 (0.0.0.0/0.0.0.0). 내가 얻고 자하는 것은 소켓이 실제로 바인딩 된 IP입니다. 130.75.22.12 (또는 비슷한 것).

답변

2

동결

사막에서 물을 찾고있는 것 같습니다 :).

컴퓨터의 모든 인터페이스 또는 모든 IP 주소 (장치 또는 프로그램이 ServerSocket에 연결되기 전에)를 수신하는 ServerSocket의 IP 주소를 가져올 수 없습니다. 모든 네트워킹 인터페이스의 IP 주소를 쿼리합니다 JZ 모든 사람에게 도움이 될 것 같다

Oracle Java Documentation - Querying Network Interface Addresses.

.. 연구를하고 당신이 필요 acheive에 해당 IP 주소를 사용할 수있는 링크를 따르십시오.

+0

감사 ... ServerSocket 실제로 수신 대기하는 IP 주소를 직접 반복하는 것이 가능할 것으로 기대했다.그래서 seso.getInetAddress()와 함께 ServerSocket을 호스팅하는 컴퓨터의 가능한 모든 주소를 보여주는 Network Interface Adresses 목록의 정보를 결합해야합니까? – MrFreeze

0

사용 소켓 sock = seso.accept(); 당신이 지정한 포트에서 소켓을 청취합니다. 연결을 얻은 후 sock.getInetAddress()를 사용하여 IP 및 포트를 가져올 수 있습니다.

+0

시도했지만 소켓 양말 = seso.accept(); 반환하지 않음 ... – MrFreeze

+0

다른 프로그램을 사용하여 클라이언트 소켓을 통해 연결하면 반환됩니다. 예를 들어 소켓 소켓 = 새 소켓 (ipaddressofmachinewhereserverisrunning, portofserver); –

+0

네,하지만 알고 싶었던 것은 아닙니다. ID는 ServerSocket의 IP를 동일한 응용 프로그램 (예 : 로깅, 창 제목, 메타 서버 또는 다른 용도로 보내기. 더 복잡한 것처럼 보였다. – MrFreeze

1

ServerSocket은 인터페이스에 바인딩됩니다. 이 인터페이스는 socket.getInetAddress() (0.0.0.0)으로 얻을 수 있습니다. 이는 서버가 사용 가능한 모든 인터페이스에서 수신 대기한다는 것을 의미하므로, 서버가 수신 대기중인 단일 IP 주소를 얻을 수없는 경우가 종종 있습니다. 네트워크 인터페이스를 얻는 방법에

더 많은 정보 :

NetworkInterface

사용할 수있는 지역의 주소를

Usage

+0

컴퓨터 (또는 서버 프로그램)가 여러 IP를 동시에들을 수 있다는 것을 이해했습니다 (예 : LAN, wireles, ...). 아직도 나는 * *을 찾고 싶다. 나는 장님 일지 모르지만 ServerSocket이 듣고있는 IP 주소를 반복 할 수있는 방법은 무엇입니까? – MrFreeze

0

, 당신이 사용하는 서버 주소에 대한

System.out.println(Inet4Address.getLocalHost().getHostAddress()); 

,

System.out.println(serversocket.getRemoteSocketAddress().toString()); 
+1

ServerSockets에는 getRemoteSocketAddress() 메소드가 없습니다 ... – MrFreeze

+0

예, localAdress를 사용할 수 있습니다. – Vedang

+0

결과는 seso.getLocalSocketAddress(). toString() "0.0.0.0/0.0.0.0:22"... 인터페이스 마스크 만 다시 나타납니다. 내가 찾고있는 것은 이미 생성 된 ServerSocket의 진짜 exisiting ip (s)이다. – MrFreeze