Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use Socket;
- use IO::Socket;
- use URI::Escape;
- #
- # Configuration
- #
- my $E3 = "sms.dialogue.co.uk";
- my $LOGIN = "login";
- my $PASSWORD = "password";
- print "Submit result: ",send_message("44976918568","this is a test message using POST"),"\n";
- #
- # Send SMS message
- #
- sub send_message() {
- my ($number,$message) = @_;
- my $result = undef;
- #get IP addresses for hostname
- my @address_list = gethostbyname($E3) or return "message centre lookup failed:$!";
- @address_list = map { inet_ntoa($_) } @address_list[4 .. $#address_list];
- #shuffle IP addresses
- while(rand()>.1) {
- push(@address_list,shift(@address_list));
- }
- #try to connect to each IP address in turn
- $connected = 0;
- foreach $address (@address_list) {
- $socket = IO::Socket::INET->new(
- PeerAddr => $address,
- PeerPort => 80,
- Proto => "tcp",
- Type => SOCK_STREAM,
- Timeout => 5,
- )
- or next;
- $connected = 1;
- last;
- }
- return 'Unable to connect' unless ($connected);
- $socket->autoflush(1);
- #build request URL
- my ($enc_message) = URI::Escape::uri_escape($message,'\x00-\x20"#%;<>?{}|\\^~`\[\]\x7F-\xFF=&');
- # $url = '/cgi-bin/messaging/messaging.mpl?';
- $url .= 'X-E3-Recipients=' . $number . '&';
- $url .= 'X-E3-Message=' . $message . '&';
- $url .= 'X-E3-HTTP-Login=' . $LOGIN . '&';
- $url .= 'X-E3-HTTP-Password=' . $PASSWORD . '&';
- $url .= 'X-E3-Verbose=off';
- #send request
- # print $socket "GET $url HTTP/1.0\r\n\r\n";
- my $content =
- print $socket "POST /cgi-bin/messaging/messaging.mpl HTTP/1.0\r\nContent-Length: ",length($url),"\r\n\r\n",$url;
- #set default result as "timed out"
- $result = 'Timed Out';
- #check response for returned result
- while(<$socket>) {
- print $_;
- # if ( /\<TR\>\<TD\>\d+\<\/TD\>\<TD\>(.*)\<\/TD\>\<\/TR\>/ ) {
- # $result = $1;
- # }
- }
- close($socket);
- return $result;
- }
Add Comment
Please, Sign In to add comment