diff --git a/java/com/tigervnc/network/Socket.java b/java/com/tigervnc/network/Socket.java
index bc0af5c..0fadad4 100644
--- a/java/com/tigervnc/network/Socket.java
+++ b/java/com/tigervnc/network/Socket.java
@@ -51,6 +51,7 @@
 
   // information about the remote end of the socket
   abstract public String getPeerAddress(); // a string e.g. "192.168.0.1"
+  abstract public String getPeerName(); 
   abstract public int getPeerPort();
   abstract public String getPeerEndpoint(); // <address>::<port>
 
diff --git a/java/com/tigervnc/network/TcpSocket.java b/java/com/tigervnc/network/TcpSocket.java
index 9672fe5..c4c1a8c 100644
--- a/java/com/tigervnc/network/TcpSocket.java
+++ b/java/com/tigervnc/network/TcpSocket.java
@@ -118,15 +118,22 @@
   }
 
   public String getPeerAddress() {
-    SocketAddress peer = ((SocketDescriptor)getFd()).socket().getRemoteSocketAddress();
+    InetAddress peer = ((SocketDescriptor)getFd()).socket().getInetAddress();
     if (peer != null)
-      return peer.toString();
+      return peer.getHostAddress();
+    return "";
+  }
+
+  public String getPeerName() {
+    InetAddress peer = ((SocketDescriptor)getFd()).socket().getInetAddress();
+    if (peer != null)
+      return peer.getHostName();
     return "";
   }
 
   public int getPeerPort() {
-    SocketAddress address = ((SocketDescriptor)getFd()).socket().getRemoteSocketAddress();
-    return ((InetSocketAddress)address).getPort();
+    int port = ((SocketDescriptor)getFd()).socket().getPort();
+    return port;
   }
 
   public String getPeerEndpoint() {
diff --git a/java/com/tigervnc/vncviewer/CConn.java b/java/com/tigervnc/vncviewer/CConn.java
index 714dff0..8c95017 100644
--- a/java/com/tigervnc/vncviewer/CConn.java
+++ b/java/com/tigervnc/vncviewer/CConn.java
@@ -821,7 +821,7 @@
   void showInfo() {
     JOptionPane.showMessageDialog(viewport,
       "Desktop name: "+cp.name()+"\n"
-      +"Host: "+serverHost+":"+serverPort+"\n"
+      +"Host: "+sock.getPeerName()+":"+sock.getPeerPort()+"\n"
       +"Size: "+cp.width+"x"+cp.height+"\n"
       +"Pixel format: "+desktop.getPF().print()+"\n"
       +"(server default "+serverPF.print()+")\n"
