Converts IPv4 address in its textual presentation form into its numeric binary form. : IP Address « Network Protocol « Java

Home
Java
1.2D Graphics GUI
2.3D
3.Advanced Graphics
4.Ant
5.Apache Common
6.Chart
7.Class
8.Collections Data Structure
9.Data Type
10.Database SQL JDBC
11.Design Pattern
12.Development Class
13.EJB3
14.Email
15.Event
16.File Input Output
17.Game
18.Generics
19.GWT
20.Hibernate
21.I18N
22.J2EE
23.J2ME
24.JavaFX
25.JDK 6
26.JDK 7
27.JNDI LDAP
28.JPA
29.JSP
30.JSTL
31.Language Basics
32.Network Protocol
33.PDF RTF
34.Reflection
35.Regular Expressions
36.Scripting
37.Security
38.Servlets
39.Spring
40.Swing Components
41.Swing JFC
42.SWT JFace Eclipse
43.Threads
44.Tiny Application
45.Velocity
46.Web Services SOA
47.XML
Java » Network Protocol » IP Address 




Converts IPv4 address in its textual presentation form into its numeric binary form.
      

/*
 * Copyright 2004-2005 Sun Microsystems, Inc.  All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Sun designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Sun in the LICENSE file that accompanied this code.
 *
 * This code 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
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 * CA 95054 USA or visit www.sun.com if you need additional information or
 * have any questions.
 */

//package sun.net.util;

public class IPAddressUtil {
    private final static int INADDR4SZ = 4;
    private final static int INADDR16SZ = 16;
    private final static int INT16SZ = 2;

    /*
     * Converts IPv4 address in its textual presentation form
     * into its numeric binary form.
     *
     * @param src a String representing an IPv4 address in standard format
     * @return a byte array representing the IPv4 numeric address
     */
    public static byte[] textToNumericFormatV4(String src)
    {
        if (src.length() == 0) {
            return null;
        }

        byte[] res = new byte[INADDR4SZ];
        String[] s = src.split("\\.", -1);
        long val;
        try {
            switch(s.length) {
            case 1:
                /*
                 * When only one part is given, the value is stored directly in
                 * the network address without any byte rearrangement.
                 */

                val = Long.parseLong(s[0]);
                if (val < || val > 0xffffffffL)
                    return null;
                res[0(byte) ((val >> 240xff);
                res[1(byte) (((val & 0xffffff>> 160xff);
                res[2(byte) (((val & 0xffff>> 80xff);
                res[3(byte) (val & 0xff);
                break;
            case 2:
                /*
                 * When a two part address is supplied, the last part is
                 * interpreted as a 24-bit quantity and placed in the right
                 * most three bytes of the network address. This makes the
                 * two part address format convenient for specifying Class A
                 * network addresses as net.host.
                 */

                val = Integer.parseInt(s[0]);
                if (val < || val > 0xff)
                    return null;
                res[0(byte) (val & 0xff);
                val = Integer.parseInt(s[1]);
                if (val < || val > 0xffffff)
                    return null;
                res[1(byte) ((val >> 160xff);
                res[2(byte) (((val & 0xffff>> 8&0xff);
                res[3(byte) (val & 0xff);
                break;
            case 3:
                /*
                 * When a three part address is specified, the last part is
                 * interpreted as a 16-bit quantity and placed in the right
                 * most two bytes of the network address. This makes the
                 * three part address format convenient for specifying
                 * Class B net- work addresses as 128.net.host.
                 */
                for (int i = 0; i < 2; i++) {
                    val = Integer.parseInt(s[i]);
                    if (val < || val > 0xff)
                        return null;
                    res[i(byte) (val & 0xff);
                }
                val = Integer.parseInt(s[2]);
                if (val < || val > 0xffff)
                    return null;
                res[2(byte) ((val >> 80xff);
                res[3(byte) (val & 0xff);
                break;
            case 4:
                /*
                 * When four parts are specified, each is interpreted as a
                 * byte of data and assigned, from left to right, to the
                 * four bytes of an IPv4 address.
                 */
                for (int i = 0; i < 4; i++) {
                    val = Integer.parseInt(s[i]);
                    if (val < || val > 0xff)
                        return null;
                    res[i(byte) (val & 0xff);
                }
                break;
            default:
                return null;
            }
        catch(NumberFormatException e) {
            return null;
        }
        return res;
    }
}

   
    
    
    
    
    
  














Related examples in the same category
1.Get IP
2.Get all IP addresses
3.Convert a hostname to the equivalent IP addressConvert a hostname to the equivalent IP address
4.Getting the Hostname of an IP Address
5.Get canonical host name
6.Getting the IP Address and Hostname of the Local Machine
7.Perform Network Lookup with the InetAddress class
8.Get hostname by a byte array containing the IP address
9.Display multiple IP addresses
10.Looking Up the Address of a HostLooking Up the Address of a Host
11.Retrieve the hostname of an IP Address
12.Retrieve the IP address of a hostname
13.Report By Address
14.Determine the IP address and hostname of the local machine
15.An nslookup clone in Java
16.Looking for Ports: 0 -- 1024
17.Looking for Port: 1024 -- 65536
18.Looking for Port: start from 65535
19.A class that performs some subnet calculations given a network address and a subnet mask.
20.Resolves string ip address and returns host name as a string
21.Resolves hostname and returns ip address as a string
22.Resolves ip address and returns host name as a string
23.This program demonstrates the InetAddress class
24.Check if IP address match pattern
25.Convert IPv6 presentation level address to network order binary form.
26.Finds this computer's global IP address
27.Finds a local, non-loopback, IPv4 address
28.Check if the specified address is a valid numeric TCP/IP address
29.Check if the specified address is within the required subnet
30.Check if the specified address is a valid numeric TCP/IP address and return as an integer value
31.Convert a raw IP address array as a String
32.Determine if the given string is a valid IPv4 or IPv6 address.Determine if the given string is a valid IPv4 or IPv6 address.
33.A string input validator for IPs and domains.
34.Get Current Environment Network IP
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.