Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: IP address - Converting between string and number

by ikegami (Patriarch)
on Apr 28, 2006 at 20:10 UTC ( [id://546377]=note: print w/replies, xml ) Need Help??


in reply to IP address - long to dottedquad to long

Those are needlessly complicated. You're replicating functions inet_aton and inet_ntoa of the core module Socket:

use Socket qw( inet_aton inet_ntoa ); sub DottedQuadToLong { # Accepts triton.littlefish.ca # Accepts 24.72.30.83 # Accepts 407379539 # etc return unpack('N', inet_aton(shift)); } sub LongToDottedQuad { return inet_ntoa(pack('N', shift)); }

Here are alternatives that only use pack and unpack (but only accept addresses of the form a.b.c.d):

sub DottedQuadToLong { return unpack('N', (pack 'C4', split(/\./, shift))); } sub LongToDottedQuad { return join('.', unpack('C4', pack('N', shift))); }

Replies are listed 'Best First'.
Re^2: IP address - long to dottedquad to long
by ruzam (Curate) on Apr 28, 2006 at 20:23 UTC
    Wow! Excellent (and nearly instant) advice! Thanks both of you.

    My use of regex was based on a very narrow definition of dotted quad I needed at the time. I'm totally in favor of using inet_aton and inet_ntoa instead!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://546377]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (1)
As of 2024-04-16 21:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found