Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Net::NNTP ping?

by rob_au (Abbot)
on Dec 30, 2003 at 08:39 UTC ( #317642=note: print w/ replies, xml ) Need Help??


in reply to Net::NNTP ping?

Given that the Net::NNTP module inherits from the IO::Socket class, you may find the connected method inherited from this class to be of use. This method returns the peer address if the socket is in a connected state or an undefined value if the socket is not connected.

For example:

use Net::NNTP; use Socket; my $nntp = Net::NNTP->new('news-server'); my $hostaddr = $nntp->connected; print inet_ntoa((sockaddr_in($hostaddr))[1]), "\n" if defined $hostadd +r;

 

perl -le "print+unpack'N',pack'B32','00000000000000000000001010100100'"


Comment on Re: Net::NNTP ping?
Select or Download Code
Replies are listed 'Best First'.
Re: Re: Net::NNTP ping?
by akis (Novice) on Dec 30, 2003 at 10:17 UTC
    Hello, thanks for the reply. So I wrote a quick one line test. White spaces added so I can read it. Results are as follows:
    perl -MNet::NNTP -MSocket -e ' $n=Net::NNTP->new( localhost, Port=>119, Timeout=>10); sleep 3600; print inet_ntoa((sockaddr_in($n->connected()))[1]) || "not connected"'
    prints out "127.0.0.1" Either the connection is still open (unlikely), or connected() is lying to me.
      At this point, I would be recommending enabling the Debug argument to the Net::NNTP constructor in your script to show NNTP protocol communication between your client script and local news server.

      For example:

      rob@development:/home/rob$ cat nntp.perl use Net::NNTP; use Socket; my $nntp = Net::NNTP->new('news-server', 'Debug' => 1); my $hostaddr = $nntp->connected; print inet_ntoa((sockaddr_in($hostaddr))[1]), "\n" if defined $hostadd +r; rob@development:/home/rob$ perl nntp.perl Net::NNTP>>> Net::NNTP(2.22) Net::NNTP>>> Net::Cmd(2.24) Net::NNTP>>> Exporter(5.562) Net::NNTP>>> IO::Socket::INET(1.25) Net::NNTP>>> IO::Socket(1.26) Net::NNTP>>> IO::Handle(1.21) Net::NNTP=GLOB(0x8262444)<<< 200 Welcome to BigPond Broadband - http:/ +/www.telstra.com/ (Typhoon v2.0.4.336) Net::NNTP=GLOB(0x8262444)>>> MODE READER Net::NNTP=GLOB(0x8262444)<<< 200 Welcome to BigPond Broadband - http:/ +/www.telstra.com/ (Typhoon v2.0.4.336) 61.9.191.5 Net::NNTP=GLOB(0x8262444)>>> QUIT Net::NNTP=GLOB(0x8262444)<<< 205 GoodBye

      Furthermore, I would recommend comparing the return result of the connected method with the socket status as reported by operating system tools such as netstat - The usage of this tool to show the status of established TCP sockets would be netstat -t under Linux and netstat -p tcp under Windows.

       

      perl -le "print+unpack'N',pack'B32','00000000000000000000001010100110'"

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (10)
As of 2015-07-28 10:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (254 votes), past polls