• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 340
  • Last Modified:

IPAddress conversion from String(192.168.1.11) to Byteorderform

Hi,

 Could i know how to convert IPAddress from String(192.168.1.11) to Byteorderform.

regards,
alpjose
0
alpjose
Asked:
alpjose
  • 6
  • 5
  • 2
  • +4
1 Solution
 
armoghanCommented:
0
 
cjjcliffordCommented:
Have a look at java.net.InetAddress:

public static InetAddress InetAddress.getByName()
public byte[] InetAddress.getAddress()

0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
NaeemgCommented:
check this code.

    try
    {
      byte[] thisBytes = java.net.InetAddress.getByName("192.168.1.11").getAddress();
      for(int i = 0; i < thisBytes.length; i++)
        System.out.println(thisBytes[i]);
    }
    catch(UnknownHostException ex)
    {
    }
 

Bye,
Naeem Shehzad Ghuman
0
 
CEHJCommented:
>>to Byteorderform.

As what Java type?
0
 
alpjoseAuthor Commented:
For the IPAddress 192.168.1.11 ,  the byte order address is 2147483647.
This is Network Byte order.
0
 
CEHJCommented:
You mean you want it as an integer?
0
 
alpjoseAuthor Commented:
Yes i want it as integer.
0
 
NaeemgCommented:
have u tried my code?

try
    {
      byte[] thisBytes = java.net.InetAddress.getByName("192.168.1.11").getAddress();
      for(int i = 0; i < thisBytes.length; i++)
        System.out.println(thisBytes[i]);
    }
    catch(UnknownHostException ex)
    {
    }
 

Bye,
Naeem Shehzad Ghuman
0
 
alpjoseAuthor Commented:
yes i tried, but i am not getting the Network Byte order.
0
 
CEHJCommented:
>>
the byte order address is 2147483647.
This is Network Byte order.
>>

Are you certain about that?
0
 
sciuriwareCommented:
An XDR decoding should give you byte order.
And JAVA is completely Network Byte Order internally.
You might reverse the sequence in the code above .....
;JOOP!
0
 
alpjoseAuthor Commented:
I am not very sure,

i have used the below code to get the Value.

int getAddressInByteOrder(String strIPAddress) {
            StringTokenizer st = new StringTokenizer(strIPAddress, .);
            int m = 256, n = 1, o = 2, p = 3;
            int a1 = 0, b1 = 0, c1 = 0, d1 = 0;
            while (st.hasMoreElements()) {
                  a1 = Integer.parseInt((String) st.nextElement());
                  b1 = Integer.parseInt((String) st.nextElement());
                  c1 = Integer.parseInt((String) st.nextElement());
                  d1 = Integer.parseInt((String) st.nextElement());
            }
            int com = 0;
            com += (d1 * Math.pow(m, p));
            com += (c1 * Math.pow(m, o));
            com += (b1 * Math.pow(m, n));
            com += (a1);
            return com;
      } // ending getAddressInByteOrder

I got the required result for 192.168.1.x range , but for some range of Address i am not getting the correct value.

for the range 134.27.57.127, i am supposed to get -197583994 but i am getting -2147483515.
So i would like to know if there is any other way to do this.
0
 
sciuriwareCommented:
DO NOT USE Math.pow() WHEN DEALING WITH INTEGERS!
;JOOP!
0
 
CEHJCommented:
>>for the range 134.27.57.127,

It's not a range - it's an address ;-)

>>i am supposed to get -197583994

I don't think that's right

>>but i am getting -2147483515.

and i don't think that is either.

Try to get a definitive ip to int so it can be replicated/tested
0
 
CEHJCommented:
This is the simplest way:

     InetAddress ip = InetAddress.getByName("134.27.57.127");
     byte[] bytes = ip.getAddress();
     int address = new java.math.BigInteger(bytes).intValue();
     System.out.println(address);
0
 
alpjoseAuthor Commented:
Pls let me know how to do.
I mean to say 134.27.57.127 's range ie  134.27.57.128...
Fine for this IP , let me know how to get definitive ip.

0
 
CEHJCommented:
>>let me know how to get definitive ip.

As in my code above ;-) That's for network byte order
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 6
  • 5
  • 2
  • +4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now