get-modems-remote.pl
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
源码类别:

SNMP编程

开发平台:

C/C++

  1. #! /usr/bin/perl
  2. #
  3. # get-modems-remote.pl
  4. #
  5. # Connects to a TCP port get's there the number of occupied modems
  6. # and prints'em out
  7. #
  8. # The other side consists of a silly programm (a la get-modems.pl ;)
  9. # that just prints the number of active lines.
  10. #
  11. # ex:
  12. # /etc/services :
  13. #   getmodems 9999/tcp
  14. # /etc/inetd.conf:
  15. #   getmodems  stream  tcp  nowait  nobody  /usr/bin/get-modems.pl get-modems.pl
  16. #
  17. # Thanks to Larry Wall for the nice example in the Lama Perl-tutorial
  18. #
  19. # (c) T.Pospisek <tpo@spin.ch> Distributed under GNU copyleft
  20. #
  21. # History:
  22. # ??-??-97 initial release for mrtg
  23. # 13-05-99 cleaned up a little bit - thanks to Dancho Kanev
  24. #               <dancho@globcom.net> for "buging" me ;-)
  25. # ---- please adapt the following two lines to your local configuration ---
  26. # The name of the remote server
  27. $remote_server='jesus';
  28. # The name of the service
  29. $service='getmodems';
  30. #-- end of user configurable stuff     ---
  31. use Socket;
  32. $sockaddr = 'S n a4 x8';
  33. chop($hostname = `hostname`);
  34. ($name, $aliases, $proto) = getprotobyname('tcp');
  35. ($name, $aliases, $port) = getservbyname($service,'tcp');
  36. ($name, $aliases, $type, $len, $thisaddr) = gethostbyname($hostname);
  37. ($name, $aliases, $type, $len, $thataddr) = gethostbyname($remote_server);
  38. $thisport = pack($sockaddr, &AF_INET, 0, $thisaddr);
  39. $thatport = pack($sockaddr, &AF_INET, $port, $thataddr);
  40. socket(S, &PF_INET, &SOCK_STREAM, $proto) ||
  41.         die "dial-in-check : cannot create socketn";
  42. bind(S, $thisport) ||
  43.         die "dial-in-check : cannot bind socketn";
  44. connect(S, $thatport) ||
  45.         die "dial-in-check : cannot bind socketn";
  46. while (<S>) {
  47.         print;
  48. }
  49. # print "0n";
  50. # print "0n";
  51. # print "$remote_servern";