Guest User

Untitled

a guest
Feb 21st, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2.  
  3. use Socket;
  4.  
  5. use IO::Socket;
  6.  
  7. use URI::Escape;
  8.  
  9.  
  10. #
  11.  
  12. # Configuration
  13.  
  14. #
  15.  
  16. my $E3 = "sms.dialogue.co.uk";
  17.  
  18. my $LOGIN = "login";
  19.  
  20. my $PASSWORD = "password";
  21.  
  22.  
  23. print "Submit result: ",send_message("44976918568","this is a test message using POST"),"\n";
  24.  
  25.  
  26. #
  27.  
  28. # Send SMS message
  29.  
  30. #
  31.  
  32. sub send_message() {
  33.  
  34. my ($number,$message) = @_;
  35.  
  36. my $result = undef;
  37.  
  38. #get IP addresses for hostname
  39.  
  40. my @address_list = gethostbyname($E3) or return "message centre lookup failed:$!";
  41.  
  42. @address_list = map { inet_ntoa($_) } @address_list[4 .. $#address_list];
  43.  
  44. #shuffle IP addresses
  45.  
  46. while(rand()>.1) {
  47.  
  48. push(@address_list,shift(@address_list));
  49.  
  50. }
  51.  
  52. #try to connect to each IP address in turn
  53.  
  54. $connected = 0;
  55.  
  56. foreach $address (@address_list) {
  57.  
  58. $socket = IO::Socket::INET->new(
  59.  
  60. PeerAddr => $address,
  61.  
  62. PeerPort => 80,
  63.  
  64. Proto => "tcp",
  65.  
  66. Type => SOCK_STREAM,
  67.  
  68. Timeout => 5,
  69.  
  70. )
  71.  
  72. or next;
  73.  
  74. $connected = 1;
  75.  
  76. last;
  77.  
  78. }
  79.  
  80.  
  81.  
  82. return 'Unable to connect' unless ($connected);
  83.  
  84. $socket->autoflush(1);
  85.  
  86. #build request URL
  87.  
  88. my ($enc_message) = URI::Escape::uri_escape($message,'\x00-\x20"#%;<>?{}|\\^~`\[\]\x7F-\xFF=&');
  89.  
  90. # $url = '/cgi-bin/messaging/messaging.mpl?';
  91.  
  92. $url .= 'X-E3-Recipients=' . $number . '&';
  93.  
  94. $url .= 'X-E3-Message=' . $message . '&';
  95.  
  96. $url .= 'X-E3-HTTP-Login=' . $LOGIN . '&';
  97.  
  98. $url .= 'X-E3-HTTP-Password=' . $PASSWORD . '&';
  99.  
  100. $url .= 'X-E3-Verbose=off';
  101.  
  102. #send request
  103.  
  104. # print $socket "GET $url HTTP/1.0\r\n\r\n";
  105.  
  106. my $content =
  107.  
  108. print $socket "POST /cgi-bin/messaging/messaging.mpl HTTP/1.0\r\nContent-Length: ",length($url),"\r\n\r\n",$url;
  109.  
  110.  
  111. #set default result as "timed out"
  112.  
  113. $result = 'Timed Out';
  114.  
  115. #check response for returned result
  116.  
  117. while(<$socket>) {
  118.  
  119. print $_;
  120.  
  121. # if ( /\<TR\>\<TD\>\d+\<\/TD\>\<TD\>(.*)\<\/TD\>\<\/TR\>/ ) {
  122.  
  123. # $result = $1;
  124.  
  125. # }
  126.  
  127. }
  128.  
  129. close($socket);
  130.  
  131. return $result;
  132.  
  133. }
Add Comment
Please, Sign In to add comment