Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^4: Why 'Net::Address::IP::Local'->public do not return IP address

by Anonymous Monk
on Jan 19, 2015 at 17:26 UTC ( [id://1113787]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Why 'Net::Address::IP::Local'->public do not return IP address
in thread Why 'Net::Address::IP::Local'->public do not return IP address

Bonjour, I tried something like this :
use strict; use warnings; use Net::Address::IP::Local; print ReturnIpAddress(); sub ReturnIpAddress { my $address; select STDOUT; eval{ $address = 'Net::Address::IP::Local'->public ; ## Rece +iving the current IP ## }; if ($@) { print "$@"; return '192.80.160.16'; ##If No IP address received th +en return a static IP of order "192....." } else { return $address; } }
And i got error again like this :
C:\shekhar_Axestrack_Intern\WindowCreation>ccc.pl Unable to create UDP socket: A socket operation was attempted to an un +reachable network. at C:/Perl/site/lib/Net/Address/IP/Local.pm line 166. 192.80.160.16
Any solution. Please note that this problem occurs when i disconects the internet and then execute the code (i am under such situation). Any other way to handle this problem ? (To test the code you will need to resatrt the PC and with internet turnoff otherwise it still keeps store the IP of the time of connection and print the IP but when we restart PC then we will not have that previous IP)

Replies are listed 'Best First'.
Re^5: Why 'Net::Address::IP::Local'->public do not return IP address
by Laurent_R (Canon) on Jan 19, 2015 at 18:39 UTC
    But that was what you wanted, wasn't it?

    When you do this:

    print "$@";
    you ask your program to print the error during the creation of the socket, and that's what you get:
    Unable to create UDP socket: A socket operation was attempted to an un +reachable network. at C:/Perl/site/lib/Net/Address/IP/Local.pm line 166.
    If you don't want to get this warning printed, then just don't print it.

    But now, your program does not die anymore because of this network exception, this is no longer a fatal error, since your subroutine is able to continue with the next line of code and to return the 192.80.160.16 IP address.

    Or did I misunderstand what you were after?

    Je suis Charlie.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2024-04-25 09:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found