Here you can find the source of isLocalAddress(InetAddress address)
public static boolean isLocalAddress(InetAddress address)
//package com.java2s; /**/*from w w w .ja va2s . c om*/ * * Copyright (C) 2004-2008 FhG Fokus * * This file is part of the FhG Fokus UPnP stack - an open source UPnP implementation * with some additional features * * You can redistribute the FhG Fokus UPnP stack and/or modify it * under the terms of the GNU General Public License Version 3 as published by * the Free Software Foundation. * * For a license to use the FhG Fokus UPnP stack software under conditions * other than those described here, or to purchase support for this * software, please contact Fraunhofer FOKUS by e-mail at the following * addresses: * upnpstack@fokus.fraunhofer.de * * The FhG Fokus UPnP stack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see <http://www.gnu.org/licenses/> * or write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ import java.net.InetAddress; public class Main { /** Checks if an IP address is local (e.g., 10.147.x.y or 192.168.x.y) */ public static boolean isLocalAddress(InetAddress address) { // check source of request message byte[] tempData = address.getAddress(); int[] addressData = new int[4]; for (int i = 0; i < 4; i++) { addressData[i] = tempData[i] & 0xFF; } return addressData[0] == 10 || addressData[0] == 172 && (addressData[1] & 0x10) == 0x10 || addressData[0] == 192 && addressData[1] == 168 || addressData[0] == 169 && addressData[1] == 254; } }