Clinton Foster wrote:
> JDK 1.4 added three new methods on InetAddress to make this determination.
> Have a look at this code snippet:
>
>   InetAddress remoteInetAddress = controlSocket.getInetAddress();
>
>   if (remoteInetAddress.isLinkLocalAddress() ||
>       remoteInetAddress.isSiteLocalAddress() ||
>       remoteInetAddress.isLoopbackAddress()) {
>          // client is local
>   }
>
> The one thing I'm unsure about is whether it is correct to check both
> isLinkLocal and isSiteLocal. The Javadoc is not very helpful. If anyone can
> provide some additional insight, that would be great.
>
> I have tested this with various different FTP clients connecting from inside
> and outside the firewall, both SSL and non-SSL, and it works in all the
> scenarios I've tried.

After reading the JavaDocs, I'm not entirely sure this will catch the case where the server is on a private network (192.168.*.*), e.g. behind a NAT? Link local seems to cover only 169.254.*.* addresses.

/niklas

Reply via email to