[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

IP Number to IP address

Posted on 2006-11-16
1
Medium Priority
?
953 Views
Last Modified: 2008-01-09
I need a function that converts ip numer into IP address.

ipnum = 16777216*w + 65536*x + 256*y + z
where
IP Address = w.x.y.z
0
Comment
Question by:mxpoint
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 10

Accepted Solution

by:
bchoor earned 375 total points
ID: 17963112
I'm pretty sure there are several other ways this can be done --

you can just shift, multiply and subtract

w = ipnum >> 24
ipnum = ipnum - (w * 2^24)
x = ipnum >> 16
ipnum = ipnum - (x * 2^16)
I posted an example at the bottom of this post
and so forth

or Maybe something like this
    Public Function IpNumberToIpAddress(ByVal IpNumber As Int64) As Integer()
        Dim IpAddress As New ArrayList

        For Each m As Match In Regex.Matches(IpNumber.ToString("x0").ToUpper(), "[\dA-F]{2}")
            IpAddress.Add(CType("&H" & m.Value, Integer))
        Next

        Return IpAddress.ToArray(GetType(System.Int32))
    End Function

Usage:
?IpNumberToIpAddress(3232235521.0)
{Length=4}
    (0): 192
    (1): 168
    (2): 0
    (3): 1


    Public Function IpNumberToIpAddress2(ByVal IpNumber As Int64) As Integer()
        Dim IpAddress As New ArrayList
        Dim v As Integer = 0

        v = IpNumber >> 24
        IpAddress.Add(v)
        IpNumber = IpNumber - (v * 2 ^ 24)

        v = IpNumber >> 16
        IpAddress.Add(v)
        IpNumber = IpNumber - (v * 2 ^ 16)

        v = IpNumber >> 8
        IpAddress.Add(v)
        IpNumber = IpNumber - (v * 2 ^ 8)

        v = IpNumber
        IpAddress.Add(v)

        Return IpAddress.ToArray(GetType(System.Int32))
    End Function
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial demonstrates one way to create an application that runs without any Forms but still has a GUI presence via an Icon in the System Tray. The magic lies in Inheriting from the ApplicationContext Class and passing that to Application.Ru…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Suggested Courses

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question