Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known

Hi All

When I run my code(below) for sending sms through smpp server, I get this error

Warning: fsockopen(): unable to connect to www.172.27.130.3:5016 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /opt/lampp/htdocs/php-smpp-client-quickstart-master/smpp.php on line 78
php_network_getaddresses: getaddrinfo failed: Name or service not known (0)

The Host was correctly configured. below is my code
send.php

<?php

	include 'smpp.php';

	$src  = "263111"; // or text
	$dst  = "263777894055";
	$message = "Test Message";
	$host = "www.myip"; // ip or domain
	$port = "host"; // must be integer

	$smpp_user = "system id";
	$smpp_pass = "password";
	$system_type = "";

	$s = new smpp();
	$s->debug=1;

	// $host,$port,$system_id,$password,$system_type
	$s->open($host, $port, $smpp_user, $smpp_pass,$system_type);

	// $source_addr,$destintation_addr,$short_message,$utf=0,$flash=0
	// $s->send_long($src, $dst, $message);
	$s->submit_sm($src, $dst, $message);
	//$s->deliver_sm($dst, $src, $message);

	/* To send unicode
	$utf = true;
	$message = iconv('Windows-1256','UTF-16BE',$message);
	$s->send_long($src, $dst, $message, $utf);
	*/

	$s->close();
?>

And smpp.php

<?php

/* **************************************************
 * SMPP v3.4
 * PHP Class to send SMS messages using SMPP v3.4 protocol
 * Rayed Alrashed
 * 10 August 2008
 ************************************************** */


if (basename($_SERVER['SCRIPT_NAME']) == 'smpp.php') {
  header('Content-Type: text/plain');

  $src  = "263111"; // or text
  $dst  = "263777894055";
  $message = "Test Message";

  $s = new smpp();
  $s->debug=1;

  // $host,$port,$system_id,$password
  $s->open("www.host", port, "system_id", "password");

  // $source_addr,$destintation_addr,$short_message,$utf=0,$flash=0
  $s->send_long($src, $dst, $message);

  /* To send unicode
  $utf = true;
  $message = iconv('Windows-1256','UTF-16BE',$message);
  $s->send_long($src, $dst, $message, $utf);
  */

  $s->close();
}





class smpp {

  var $socket=0;
  var $seq=0;
  var $debug=0;
  var $data_coding=0;
  var $timeout = 2;

  //////////////////////////////////////////////////
  function send_pdu($id,$data) {

    // increment sequence
    $this->seq +=1;
    // PDU = PDU_header + PDU_content
    $pdu = pack('NNNN', strlen($data)+16, $id, 0, $this->seq) . $data;
    // send PDU
    fputs($this->socket, $pdu);

    // Get response length
    $data = fread($this->socket, 4);
    if($data==false) die("\nSend PDU: Connection closed!");
    $tmp = unpack('Nlength', $data);
    $command_length = $tmp['length'];
    if($command_length<12) return;

    // Get response
    $data = fread($this->socket, $command_length-4);
    $pdu = unpack('Nid/Nstatus/Nseq', $data);
    if($this->debug) print "\n< R PDU (id,status,seq): " .join(" ",$pdu) ;

    return $pdu;
  }


  //////////////////////////////////////////////////
  function open($host,$port,$system_id,$password,$system_type="") {

    // Open the socket
    $this->socket = fsockopen($host, $port, $errno, $errstr, $this->timeout);
    if ($this->socket===false)
       die("$errstr ($errno)<br />");
    if (function_exists('stream_set_timeout'))
       stream_set_timeout($this->socket, $this->timeout); // function exists for php4.3+
    if($this->debug) print "\n> Connected" ;


    // Send Bind operation
    $data  = sprintf("%s\0%s\0", $system_id, $password); // system_id, password
    $data .= sprintf("%s\0%c", $system_type, 0x34);  // system_type, interface_version
    $data .= sprintf("%c%c%s\0", 5, 0, ""); // addr_ton, addr_npi, address_range

    $ret = $this->send_pdu(2, $data);
    if($this->debug) print "\n> Bind done!" ;

    return ($ret['status']==0);
  }


  //////////////////////////////////////////////////
  function submit_sm($source_addr,$destintation_addr,$short_message,$optional='') {

    $data  = sprintf("%s\0", ""); // service_type
    $data .= sprintf("%c%c%s\0", 5,0,$source_addr); // source_addr_ton, source_addr_npi, source_addr
    $data .= sprintf("%c%c%s\0", 1,1,$destintation_addr); // dest_addr_ton, dest_addr_npi, destintation_addr
    $data .= sprintf("%c%c%c", 0,0,0); // esm_class, protocol_id, priority_flag
    $data .= sprintf("%s\0%s\0", "",""); // schedule_delivery_time, validity_period
    $data .= sprintf("%c%c", 1,0); // registered_delivery, replace_if_present_flag
    $data .= sprintf("%c%c", $this->data_coding,0); // data_coding, sm_default_msg_id
    $data .= sprintf("%c%s", strlen($short_message), $short_message); // sm_length, short_message
    $data .= $optional;

    $ret = $this->send_pdu(4, $data);
    return ($ret['status']==0);
  }

  //////////////////////////////////////////////////
  function deliver_sm($source_addr,$destintation_addr,$short_message,$optional='') {

    $data  = sprintf("%s\0", ""); // service_type
    $data .= sprintf("%c%c%s\0", 5,0,$source_addr); // source_addr_ton, source_addr_npi, source_addr
    $data .= sprintf("%c%c%s\0", 1,1,$destintation_addr); // dest_addr_ton, dest_addr_npi, destintation_addr
    $data .= sprintf("%c%c%c", 0,0,0); // esm_class, protocol_id, priority_flag
    $data .= sprintf("%s\0%s\0", "",""); // schedule_delivery_time, validity_period
    $data .= sprintf("%c%c", 1,0); // registered_delivery, replace_if_present_flag
    $data .= sprintf("%c%c", $this->data_coding,0); // data_coding, sm_default_msg_id
    $data .= sprintf("%c%s", strlen($short_message), $short_message); // sm_length, short_message
    $data .= $optional;

    $ret = $this->send_pdu(5, $data);
    return ($ret['status']==0);
  }


  //////////////////////////////////////////////////
  function close() {

    $ret = $this->send_pdu(6, "");
    fclose($this->socket);
    return true;
  }


  //////////////////////////////////////////////////
  function send_long($source_addr,$destintation_addr,$short_message,$utf=0,$flash=0) {

    if($utf)
      $this->data_coding=0x08;

    if($flash)
      $this->data_coding=$this->data_coding | 0x10;


    $size = strlen($short_message);
    if($utf) $size+=20;

    if ($size<160) { // Only one part :)
      $this->submit_sm($source_addr,$destintation_addr,$short_message);

    } else { // Multipart
      $sar_msg_ref_num =  rand(1,255);
      $sar_total_segments = ceil(strlen($short_message)/130);

      for($sar_segment_seqnum=1; $sar_segment_seqnum<=$sar_total_segments; $sar_segment_seqnum++) {
        $part = substr($short_message, 0 ,130);
        $short_message = substr($short_message, 130);

        $optional  = pack('nnn', 0x020C, 2, $sar_msg_ref_num);
        $optional .= pack('nnc', 0x020E, 1, $sar_total_segments);
        $optional .= pack('nnc', 0x020F, 1, $sar_segment_seqnum);

        if ($this->submit_sm($source_addr,$destintation_addr,$part,$optional)===false)
           return false;

      }
    }


   return true;

  }



}

i don’t think you have to prepend the www

thanks, I removed www. and it worked

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.