├── src ├── 1 ├── wadata │ ├── media │ │ └── .gitkeep │ ├── pictures │ │ └── .gitkeep │ ├── id..dat │ ├── id.34666554433.dat │ └── id.441234567890.dat ├── magic.dat ├── events │ ├── WhatsApiEventsManager.php │ ├── MyEvents.php │ └── AllEvents.php ├── SqliteMessageStore.php ├── exception.php ├── token.php ├── rc4.php ├── Constants.php ├── keystream.class.php ├── mediauploader.php ├── BinTreeNodeWriter.php ├── protocol.class.php ├── BinTreeNodeReader.php ├── vCard.php ├── countries.csv ├── tokenmap.class.php ├── func.php └── networkinfo.csv ├── examples ├── media │ ├── media_goes_here │ └── Canon.mp4 ├── .~lock.exampleRegister.php# ├── demo │ ├── Tulips.jpg │ └── Hydrangeas.jpg ├── receive.php ├── config.php ├── custom.css └── send.php ├── README.md ├── composer.json └── LICENSE /src/wadata/media/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/wadata/pictures/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/media/media_goes_here: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/1: -------------------------------------------------------------------------------- 1 | %83h%88%B1w%3D%B8%3F%E1%C2%CE5%B5b%C1%90%22%82l%A4 -------------------------------------------------------------------------------- /src/wadata/id..dat: -------------------------------------------------------------------------------- 1 | j%EF%E5%93n%C8%90%BD%CD%3F%AA%91%2A%18%AAj%B9%AB%DE%CF -------------------------------------------------------------------------------- /src/wadata/id.34666554433.dat: -------------------------------------------------------------------------------- 1 | %BDt%FB%97p%84e%02%13%CC%0E%9D%88rk%98%F4%E2%A8s -------------------------------------------------------------------------------- /src/wadata/id.441234567890.dat: -------------------------------------------------------------------------------- 1 | %FC%9F%EA%9F%A3%EF%DEf%2C%FF%F6%0A%9D%AF%99h%05%8E%DEr -------------------------------------------------------------------------------- /src/magic.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surenshanaka/whatsapp-web-api-messenger/HEAD/src/magic.dat -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # whatsapp-web-api-messenger 2 | Interface to Web WhatsApp Messenger and send messages to whatsapp users 3 | -------------------------------------------------------------------------------- /examples/.~lock.exampleRegister.php#: -------------------------------------------------------------------------------- 1 | ,suren,suren-Satellite-L655,12.06.2015 13:22,file:///home/suren/.config/libreoffice/4; -------------------------------------------------------------------------------- /examples/demo/Tulips.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surenshanaka/whatsapp-web-api-messenger/HEAD/examples/demo/Tulips.jpg -------------------------------------------------------------------------------- /examples/media/Canon.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surenshanaka/whatsapp-web-api-messenger/HEAD/examples/media/Canon.mp4 -------------------------------------------------------------------------------- /examples/demo/Hydrangeas.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surenshanaka/whatsapp-web-api-messenger/HEAD/examples/demo/Hydrangeas.jpg -------------------------------------------------------------------------------- /src/events/WhatsApiEventsManager.php: -------------------------------------------------------------------------------- 1 | listeners[$event][] = $callback; 9 | } 10 | 11 | public function fire($event, array $parameters) 12 | { 13 | if (!empty($this->listeners[$event])) { 14 | foreach ($this->listeners[$event] as $listener) { 15 | call_user_func_array($listener, $parameters); 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mgp25/whatsapi", 3 | "description": "The php WhatsApp library ", 4 | "license": "MIT", 5 | "keywords": [ 6 | "WhatsApp", 7 | "WhatsAPI" 8 | ], 9 | "authors": [ 10 | { 11 | "role": "Contributors", 12 | "name": "Chat API Contributing Team", 13 | "homepage": "https://github.com/mgp25/Chat-API/graphs/contributors" 14 | } 15 | ], 16 | "support": { 17 | "issues": "https://github.com/mgp25/Chat-API/issues", 18 | "wiki": "https://github.com/mgp25/Chat-API/wiki", 19 | "source": "https://github.com/mgp25/Chat-API" 20 | }, 21 | "autoload": { 22 | "classmap": [ 23 | "src/", 24 | "src/events" 25 | ] 26 | }, 27 | "require": { 28 | "php": ">=5.3", 29 | "ext-curl": "*", 30 | "ext-gd" : "*", 31 | "ext-sockets" : "*", 32 | "ext-openssl" : "*", 33 | "ext-pdo" : "*", 34 | "ext-sqlite3" : "*" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /examples/receive.php: -------------------------------------------------------------------------------- 1 | Connect(); 19 | $w->LoginWithPassword($password); 20 | 21 | while (true) { 22 | $w->pollMessage(); 23 | $msgs = $w->GetMessages(); 24 | // print_r($msgs); 25 | foreach($msgs as $message) 26 | { 27 | $from = $message->getAttribute("from"); 28 | $id = $message->getAttribute("id"); 29 | $notify = $message->getAttribute("notify"); 30 | echo "Sender:-".$notify."
"; 31 | echo "Tel:-".$from."
"; 32 | if($message->getChild("body")) 33 | { 34 | $messagebody = $message->getChild("body")->getData(); 35 | echo "Message:-".$messagebody; 36 | } 37 | 38 | } 39 | } 40 | 41 | ?> 42 | -------------------------------------------------------------------------------- /src/SqliteMessageStore.php: -------------------------------------------------------------------------------- 1 | db = new \PDO("sqlite:" . $fileName, null, null, array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 19 | if ($createTable) 20 | { 21 | $this->db->exec('CREATE TABLE messages (`from` TEXT, `to` TEXT, message TEXT, id TEXT, t TEXT)'); 22 | } 23 | } 24 | 25 | public function saveMessage($from, $to, $txt, $id, $t) 26 | { 27 | $sql = 'INSERT INTO messages (`from`, `to`, message, id, t) VALUES (:from, :to, :message, :messageId, :t)'; 28 | $query = $this->db->prepare($sql); 29 | 30 | $query->execute( 31 | array( 32 | ':from' => $from, 33 | ':to' => $to, 34 | ':message' => $txt, 35 | ':messageId' => $id, 36 | ':t' => $t 37 | ) 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /examples/config.php: -------------------------------------------------------------------------------- 1 | connect(); 8 | $w->loginWithPassword($password); 9 | $receiver = $_POST['receiver']; 10 | $message = $_POST['message']; 11 | if(isset($_FILES['image'])){ 12 | $errors= array(); 13 | $file_name = $_FILES['image']['name']; 14 | $file_size =$_FILES['image']['size']; 15 | $file_tmp =$_FILES['image']['tmp_name']; 16 | $file_type=$_FILES['image']['type']; 17 | $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); 18 | $extensions = array("jpeg","jpg","png","gif"); 19 | if(in_array($file_ext,$extensions )=== false){ 20 | $errors[]="extension not allowed, please choose a JPEG or PNG file."; 21 | } 22 | if($file_size > 2097152){ 23 | $errors[]='File size must be excately 2 MB'; 24 | } 25 | if(empty($errors)==true){ 26 | move_uploaded_file($file_tmp,"demo/".$file_name); 27 | echo "Success"; 28 | }else{ 29 | print_r($errors); 30 | } 31 | } 32 | // $img = $_POST['img']; 33 | // $target = $receiver; //Target Phone,reciever phone 34 | // $message = $message; 35 | $filepath = "demo/".$file_name; 36 | // $pathToVideo = "media/Canon.mp4"; 37 | // $w->SendPresenceSubscription($target); //Let us first send presence to user 38 | $w->sendMessage($receiver,$message ); // Send Message 39 | $w->sendMessageImage($receiver, $filepath); 40 | // $w->sendMessageVideo($receiver, $pathToVideo); 41 | $w->pollMessage(); 42 | echo 'Message Sent Successfully'; 43 | 44 | header("Location: send.php?success=1"); 45 | ?> 46 | -------------------------------------------------------------------------------- /src/exception.php: -------------------------------------------------------------------------------- 1 | message}' in {$this->file}({$this->line})\n" 41 | . "{$this->getTraceAsString()}"; 42 | } 43 | } 44 | 45 | /* 46 | * Exception occurs when we have no active socket 47 | * connection to whatsapp 48 | */ 49 | class ConnectionException extends Exception{} 50 | 51 | class LoginFailureException extends Exception{} -------------------------------------------------------------------------------- /src/token.php: -------------------------------------------------------------------------------- 1 | s = range(0, 255); 11 | for ($i = 0, $j = 0; $i < 256; $i++) { 12 | $k = ord($key{$i % strlen($key)}); 13 | $j = ($j + $k + $this->s[$i]) & 255; 14 | $this->swap($i, $j); 15 | } 16 | 17 | $this->i = 0; 18 | $this->j = 0; 19 | $this->cipher(range(0, $drop), 0, $drop); 20 | } 21 | 22 | public function cipher($data, $offset, $length) 23 | { 24 | $out = $data; 25 | for ($n = $length; $n > 0; $n--) { 26 | $this->i = ($this->i + 1) & 0xff; 27 | $this->j = ($this->j + $this->s[$this->i]) & 0xff; 28 | $this->swap($this->i, $this->j); 29 | $d = ord($data{$offset}); 30 | $out[$offset] = chr($d ^ $this->s[($this->s[$this->i] + $this->s[$this->j]) & 0xff]); 31 | $offset++; 32 | } 33 | 34 | return $out; 35 | } 36 | 37 | protected function swap($i, $j) 38 | { 39 | $c = $this->s[$i]; 40 | $this->s[$i] = $this->s[$j]; 41 | $this->s[$j] = $c; 42 | } 43 | } 44 | 45 | // DEPRECATED: WAUTH-1 46 | //class KeyStream 47 | //{ 48 | // private $rc4; 49 | // private $key; 50 | // 51 | // public function __construct($key) 52 | // { 53 | // $this->rc4 = new RC4($key, 256); 54 | // $this->key = $key; 55 | // } 56 | // 57 | // public function encode($data, $offset, $length, $append = true) 58 | // { 59 | // $d = $this->rc4->cipher($data, $offset, $length); 60 | // $h = substr(hash_hmac('sha1', $d, $this->key, true), 0, 4); 61 | // if ($append) 62 | // return $d . $h; 63 | // else 64 | // return $h . $d; 65 | // } 66 | // 67 | // public function decode($data, $offset, $length) 68 | // { 69 | // /* TODO: Hash check */ 70 | // 71 | // return $this->rc4->cipher($data, $offset + 4, $length - 4); 72 | // } 73 | // 74 | //} 75 | -------------------------------------------------------------------------------- /src/Constants.php: -------------------------------------------------------------------------------- 1 | rc4 = new rc4($key, self::DROP); 24 | $this->macKey = $macKey; 25 | } 26 | 27 | public static function GenerateKeys($password, $nonce) 28 | { 29 | $array = array( 30 | "key", //placeholders 31 | "key", 32 | "key", 33 | "key" 34 | ); 35 | $array2 = array(1, 2, 3, 4); 36 | $nonce .= '0'; 37 | for ($j = 0; $j < count($array); $j++) { 38 | $nonce[(strlen($nonce) - 1)] = chr($array2[$j]); 39 | $foo = wa_pbkdf2("sha1", $password, $nonce, 2, 20, true); 40 | $array[$j] = $foo; 41 | } 42 | return $array; 43 | } 44 | 45 | public function DecodeMessage($buffer, $macOffset, $offset, $length) 46 | { 47 | $mac = $this->computeMac($buffer, $offset, $length); 48 | //validate mac 49 | for ($i = 0; $i < 4; $i++) { 50 | $foo = ord($buffer[$macOffset + $i]); 51 | $bar = ord($mac[$i]); 52 | if ($foo !== $bar) { 53 | throw new Exception("MAC mismatch: $foo != $bar"); 54 | } 55 | } 56 | return $this->rc4->cipher($buffer, $offset, $length); 57 | } 58 | 59 | public function EncodeMessage($buffer, $macOffset, $offset, $length) 60 | { 61 | $data = $this->rc4->cipher($buffer, $offset, $length); 62 | $mac = $this->computeMac($data, $offset, $length); 63 | return substr($data, 0, $macOffset) . substr($mac, 0, 4) . substr($data, $macOffset + 4); 64 | } 65 | 66 | private function computeMac($buffer, $offset, $length) 67 | { 68 | $hmac = hash_init("sha1", HASH_HMAC, $this->macKey); 69 | hash_update($hmac, substr($buffer, $offset, $length)); 70 | $array = chr($this->seq >> 24) 71 | . chr($this->seq >> 16) 72 | . chr($this->seq >> 8) 73 | . chr($this->seq); 74 | hash_update($hmac, $array); 75 | $this->seq++; 76 | return hash_final($hmac, true); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/events/MyEvents.php: -------------------------------------------------------------------------------- 1 | WooHoo!, Phone number $mynumber connected successfully!

"; 83 | } 84 | 85 | public function onDisconnect($mynumber, $socket) 86 | { 87 | echo "

Booo!, Phone number $mynumber is disconnected!

"; 88 | } 89 | 90 | public function onGetMessage( $mynumber, $from, $id, $type, $time, $name, $body ) 91 | { 92 | echo "Message from $name:\n$body\n\n"; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /examples/custom.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 90px; 3 | } 4 | .panel-login { 5 | border-color: #ccc; 6 | -webkit-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2); 7 | -moz-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2); 8 | box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2); 9 | } 10 | .panel-login>.panel-heading { 11 | color: #00415d; 12 | background-color: #fff; 13 | border-color: #fff; 14 | text-align:center; 15 | } 16 | .panel-login>.panel-heading a{ 17 | text-decoration: none; 18 | color: #666; 19 | font-weight: bold; 20 | font-size: 15px; 21 | -webkit-transition: all 0.1s linear; 22 | -moz-transition: all 0.1s linear; 23 | transition: all 0.1s linear; 24 | } 25 | .panel-login>.panel-heading a.active{ 26 | color: #029f5b; 27 | font-size: 18px; 28 | } 29 | .panel-login>.panel-heading hr{ 30 | margin-top: 10px; 31 | margin-bottom: 0px; 32 | clear: both; 33 | border: 0; 34 | height: 1px; 35 | background-image: -webkit-linear-gradient(left,rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.15),rgba(0, 0, 0, 0)); 36 | background-image: -moz-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0)); 37 | background-image: -ms-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0)); 38 | background-image: -o-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0)); 39 | } 40 | .panel-login input[type="text"],.panel-login input[type="email"],.panel-login input[type="password"] { 41 | height: 45px; 42 | border: 1px solid #ddd; 43 | font-size: 16px; 44 | -webkit-transition: all 0.1s linear; 45 | -moz-transition: all 0.1s linear; 46 | transition: all 0.1s linear; 47 | } 48 | .panel-login input:hover, 49 | .panel-login input:focus { 50 | outline:none; 51 | -webkit-box-shadow: none; 52 | -moz-box-shadow: none; 53 | box-shadow: none; 54 | border-color: #ccc; 55 | } 56 | .btn-login { 57 | background-color: #59B2E0; 58 | outline: none; 59 | color: #fff; 60 | font-size: 14px; 61 | height: auto; 62 | font-weight: normal; 63 | padding: 14px 0; 64 | text-transform: uppercase; 65 | border-color: #59B2E6; 66 | } 67 | .btn-login:hover, 68 | .btn-login:focus { 69 | color: #fff; 70 | background-color: #53A3CD; 71 | border-color: #53A3CD; 72 | } 73 | .forgot-password { 74 | text-decoration: underline; 75 | color: #888; 76 | } 77 | .forgot-password:hover, 78 | .forgot-password:focus { 79 | text-decoration: underline; 80 | color: #666; 81 | } 82 | 83 | .btn-register { 84 | background-color: #1CB94E; 85 | outline: none; 86 | color: #fff; 87 | font-size: 14px; 88 | height: auto; 89 | font-weight: normal; 90 | padding: 14px 0; 91 | text-transform: uppercase; 92 | border-color: #1CB94A; 93 | } 94 | .btn-register:hover, 95 | .btn-register:focus { 96 | color: #fff; 97 | background-color: #1CA347; 98 | border-color: #1CA347; 99 | } 100 | 101 | #field, label{ 102 | float: none !important; 103 | } -------------------------------------------------------------------------------- /examples/send.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Whatsapp! Messenger 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |
13 | '; 17 | echo ' '; 18 | echo "Sent successfully"; 19 | echo '
'; 20 | } 21 | ?> 22 | 23 | 64 |
65 |
66 | 67 | 68 | 69 | 83 | 84 | -------------------------------------------------------------------------------- /src/mediauploader.php: -------------------------------------------------------------------------------- 1 | getChild("media")->getAttribute("url"); 49 | $filepath = $messageContainer["filePath"]; 50 | $to = $messageContainer["to"]; 51 | return self::getPostString($filepath, $url, $mediafile, $to, $selfJID); 52 | } 53 | 54 | protected static function getPostString($filepath, $url, $mediafile, $to, $from) 55 | { 56 | $host = parse_url($url, PHP_URL_HOST); 57 | 58 | //filename to md5 digest 59 | $cryptoname = md5($filepath) . "." . $mediafile['fileextension']; 60 | $boundary = "zzXXzzYYzzXXzzQQ"; 61 | 62 | if (is_array($to)) { 63 | $to = implode(',', $to); 64 | } 65 | 66 | $hBAOS = "--" . $boundary . "\r\n"; 67 | $hBAOS .= "Content-Disposition: form-data; name=\"to\"\r\n\r\n"; 68 | $hBAOS .= $to . "\r\n"; 69 | $hBAOS .= "--" . $boundary . "\r\n"; 70 | $hBAOS .= "Content-Disposition: form-data; name=\"from\"\r\n\r\n"; 71 | $hBAOS .= $from . "\r\n"; 72 | $hBAOS .= "--" . $boundary . "\r\n"; 73 | $hBAOS .= "Content-Disposition: form-data; name=\"file\"; filename=\"" . $cryptoname . "\"\r\n"; 74 | $hBAOS .= "Content-Type: " . $mediafile['filemimetype'] . "\r\n\r\n"; 75 | 76 | $fBAOS = "\r\n--" . $boundary . "--\r\n"; 77 | 78 | $contentlength = strlen($hBAOS) + strlen($fBAOS) + $mediafile['filesize']; 79 | 80 | $POST = "POST " . $url . "\r\n"; 81 | $POST .= "Content-Type: multipart/form-data; boundary=" . $boundary . "\r\n"; 82 | $POST .= "Host: " . $host . "\r\n"; 83 | $POST .= "User-Agent: " . Constants::WHATSAPP_USER_AGENT . "\r\n"; 84 | $POST .= "Content-Length: " . $contentlength . "\r\n\r\n"; 85 | 86 | return self::sendData($host, $POST, $hBAOS, $filepath, $mediafile, $fBAOS); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/BinTreeNodeWriter.php: -------------------------------------------------------------------------------- 1 | key = null; 12 | } 13 | 14 | public function setKey($key) 15 | { 16 | $this->key = $key; 17 | } 18 | 19 | public function StartStream($domain, $resource) 20 | { 21 | $attributes = array(); 22 | 23 | $attributes["to"] = $domain; 24 | $attributes["resource"] = $resource; 25 | $this->writeListStart(count($attributes) * 2 + 1); 26 | 27 | $this->output .= "\x01"; 28 | $this->writeAttributes($attributes); 29 | 30 | return "WA" . $this->writeInt8(1) . $this->writeInt8(5) . $this->flushBuffer(); 31 | } 32 | 33 | /** 34 | * @param ProtocolNode $node 35 | * @param bool $encrypt 36 | * 37 | * @return string 38 | */ 39 | public function write($node, $encrypt = true) 40 | { 41 | if ($node == null) { 42 | $this->output .= "\x00"; 43 | } else { 44 | $this->writeInternal($node); 45 | } 46 | 47 | return $this->flushBuffer($encrypt); 48 | } 49 | 50 | /** 51 | * @param ProtocolNode $node 52 | */ 53 | protected function writeInternal($node) 54 | { 55 | $len = 1; 56 | if ($node->getAttributes() != null) { 57 | $len += count($node->getAttributes()) * 2; 58 | } 59 | if (count($node->getChildren()) > 0) { 60 | $len += 1; 61 | } 62 | if (strlen($node->getData()) > 0) { 63 | $len += 1; 64 | } 65 | $this->writeListStart($len); 66 | $this->writeString($node->getTag()); 67 | $this->writeAttributes($node->getAttributes()); 68 | if (strlen($node->getData()) > 0) { 69 | $this->writeBytes($node->getData()); 70 | } 71 | if ($node->getChildren()) { 72 | $this->writeListStart(count($node->getChildren())); 73 | foreach ($node->getChildren() as $child) { 74 | $this->writeInternal($child); 75 | } 76 | } 77 | } 78 | 79 | protected function parseInt24($data) 80 | { 81 | $ret = ord(substr($data, 0, 1)) << 16; 82 | $ret |= ord(substr($data, 1, 1)) << 8; 83 | $ret |= ord(substr($data, 2, 1)) << 0; 84 | return $ret; 85 | } 86 | 87 | protected function flushBuffer($encrypt = true) 88 | { 89 | $size = strlen($this->output); 90 | $data = $this->output; 91 | if ($this->key != null && $encrypt) { 92 | $bsize = $this->getInt24($size); 93 | //encrypt 94 | $data = $this->key->EncodeMessage($data, $size, 0, $size); 95 | $len = strlen($data); 96 | $bsize[0] = chr((8 << 4) | (($len & 16711680) >> 16)); 97 | $bsize[1] = chr(($len & 65280) >> 8); 98 | $bsize[2] = chr($len & 255); 99 | $size = $this->parseInt24($bsize); 100 | } 101 | $ret = $this->writeInt24($size) . $data; 102 | $this->output = ''; 103 | return $ret; 104 | } 105 | 106 | protected function getInt24($length) 107 | { 108 | $ret = ''; 109 | $ret .= chr((($length & 0xf0000) >> 16)); 110 | $ret .= chr((($length & 0xff00) >> 8)); 111 | $ret .= chr(($length & 0xff)); 112 | return $ret; 113 | } 114 | 115 | protected function writeToken($token) 116 | { 117 | if ($token < 0xf5) { 118 | $this->output .= chr($token); 119 | } elseif ($token <= 0x1f4) { 120 | $this->output .= "\xfe" . chr($token - 0xf5); 121 | } 122 | } 123 | 124 | protected function writeJid($user, $server) 125 | { 126 | $this->output .= "\xfa"; 127 | if (strlen($user) > 0) { 128 | $this->writeString($user); 129 | } else { 130 | $this->writeToken(0); 131 | } 132 | $this->writeString($server); 133 | } 134 | 135 | protected function writeInt8($v) 136 | { 137 | $ret = chr($v & 0xff); 138 | 139 | return $ret; 140 | } 141 | 142 | protected function writeInt16($v) 143 | { 144 | $ret = chr(($v & 0xff00) >> 8); 145 | $ret .= chr(($v & 0x00ff) >> 0); 146 | 147 | return $ret; 148 | } 149 | 150 | protected function writeInt24($v) 151 | { 152 | $ret = chr(($v & 0xff0000) >> 16); 153 | $ret .= chr(($v & 0x00ff00) >> 8); 154 | $ret .= chr(($v & 0x0000ff) >> 0); 155 | 156 | return $ret; 157 | } 158 | 159 | protected function writeBytes($bytes) 160 | { 161 | $len = strlen($bytes); 162 | if ($len >= 0x100) { 163 | $this->output .= "\xfd"; 164 | $this->output .= $this->writeInt24($len); 165 | } else { 166 | $this->output .= "\xfc"; 167 | $this->output .= $this->writeInt8($len); 168 | } 169 | $this->output .= $bytes; 170 | } 171 | 172 | protected function writeString($tag) 173 | { 174 | $intVal = -1; 175 | $subdict = false; 176 | if (TokenMap::TryGetToken($tag, $subdict, $intVal)) { 177 | if ($subdict) { 178 | $this->writeToken(236); 179 | } 180 | $this->writeToken($intVal); 181 | return; 182 | } 183 | $index = strpos($tag, '@'); 184 | if ($index) { 185 | $server = substr($tag, $index + 1); 186 | $user = substr($tag, 0, $index); 187 | $this->writeJid($user, $server); 188 | } else { 189 | $this->writeBytes($tag); 190 | } 191 | } 192 | 193 | protected function writeAttributes($attributes) 194 | { 195 | if ($attributes) { 196 | foreach ($attributes as $key => $value) { 197 | $this->writeString($key); 198 | $this->writeString($value); 199 | } 200 | } 201 | } 202 | 203 | protected function writeListStart($len) 204 | { 205 | if ($len == 0) { 206 | $this->output .= "\x00"; 207 | } elseif ($len < 256) { 208 | $this->output .= "\xf8" . chr($len); 209 | } else { 210 | $this->output .= "\xf9" . $this->writeInt16($len); 211 | } 212 | } 213 | } 214 | -------------------------------------------------------------------------------- /src/protocol.class.php: -------------------------------------------------------------------------------- 1 | input = $input; 16 | } 17 | 18 | public function getInput() 19 | { 20 | return $this->input; 21 | } 22 | } 23 | 24 | class ProtocolNode 25 | { 26 | private $tag; 27 | private $attributeHash; 28 | private $children; 29 | private $data; 30 | private static $cli = null; 31 | 32 | /** 33 | * check if call is from command line 34 | * @return bool 35 | */ 36 | private static function isCli() 37 | { 38 | if (self::$cli === null) { 39 | //initial setter 40 | if (php_sapi_name() == "cli") { 41 | self::$cli = true; 42 | } else { 43 | self::$cli = false; 44 | } 45 | } 46 | return self::$cli; 47 | } 48 | 49 | /** 50 | * @return string 51 | */ 52 | public function getData() 53 | { 54 | return $this->data; 55 | } 56 | 57 | /** 58 | * @return string 59 | */ 60 | public function getTag() 61 | { 62 | return $this->tag; 63 | } 64 | 65 | /** 66 | * @return string[] 67 | */ 68 | public function getAttributes() 69 | { 70 | return $this->attributeHash; 71 | } 72 | 73 | /** 74 | * @return ProtocolNode[] 75 | */ 76 | public function getChildren() 77 | { 78 | return $this->children; 79 | } 80 | 81 | public function __construct($tag, $attributeHash, $children, $data) 82 | { 83 | $this->tag = $tag; 84 | $this->attributeHash = $attributeHash; 85 | $this->children = $children; 86 | $this->data = $data; 87 | } 88 | 89 | /** 90 | * @param string $indent 91 | * @param bool $isChild 92 | * @return string 93 | */ 94 | public function nodeString($indent = "", $isChild = false) 95 | { 96 | //formatters 97 | $lt = "<"; 98 | $gt = ">"; 99 | $nl = "\n"; 100 | if ( ! self::isCli()) { 101 | $lt = "<"; 102 | $gt = ">"; 103 | $nl = "
"; 104 | $indent = str_replace(" ", " ", $indent); 105 | } 106 | 107 | $ret = $indent . $lt . $this->tag; 108 | if ($this->attributeHash != null) { 109 | foreach ($this->attributeHash as $key => $value) { 110 | $ret .= " " . $key . "=\"" . $value . "\""; 111 | } 112 | } 113 | $ret .= $gt; 114 | if (strlen($this->data) > 0) { 115 | if (strlen($this->data) <= 1024) { 116 | //message 117 | $ret .= $this->data; 118 | } else { 119 | //raw data 120 | $ret .= " " . strlen($this->data) . " byte data"; 121 | } 122 | } 123 | if ($this->children) { 124 | $ret .= $nl; 125 | $foo = array(); 126 | foreach ($this->children as $child) { 127 | $foo[] = $child->nodeString($indent . " ", true); 128 | } 129 | $ret .= implode($nl, $foo); 130 | $ret .= $nl . $indent; 131 | } 132 | $ret .= $lt . "/" . $this->tag . $gt; 133 | 134 | if ( ! $isChild) { 135 | $ret .= $nl; 136 | if ( ! self::isCli()) { 137 | $ret .= $nl; 138 | } 139 | } 140 | 141 | return $ret; 142 | } 143 | 144 | /** 145 | * @param $attribute 146 | * @return string 147 | */ 148 | public function getAttribute($attribute) 149 | { 150 | $ret = ""; 151 | if (isset($this->attributeHash[$attribute])) { 152 | $ret = $this->attributeHash[$attribute]; 153 | } 154 | 155 | return $ret; 156 | } 157 | 158 | /** 159 | * @param string $needle 160 | * @return boolean 161 | */ 162 | public function nodeIdContains($needle) 163 | { 164 | return (strpos($this->getAttribute("id"), $needle) !== false); 165 | } 166 | 167 | //get children supports string tag or int index 168 | /** 169 | * @param $tag 170 | * @return ProtocolNode 171 | */ 172 | public function getChild($tag) 173 | { 174 | $ret = null; 175 | if ($this->children) { 176 | if (is_int($tag)) { 177 | if (isset($this->children[$tag])) { 178 | return $this->children[$tag]; 179 | } else { 180 | return null; 181 | } 182 | } 183 | foreach ($this->children as $child) { 184 | if (strcmp($child->tag, $tag) == 0) { 185 | return $child; 186 | } 187 | $ret = $child->getChild($tag); 188 | if ($ret) { 189 | return $ret; 190 | } 191 | } 192 | } 193 | 194 | return null; 195 | } 196 | 197 | /** 198 | * @param $tag 199 | * @return bool 200 | */ 201 | public function hasChild($tag) 202 | { 203 | return $this->getChild($tag) == null ? false : true; 204 | } 205 | 206 | /** 207 | * @param int $offset 208 | */ 209 | public function refreshTimes($offset = 0) 210 | { 211 | if (isset($this->attributeHash['id'])) { 212 | $id = $this->attributeHash['id']; 213 | $parts = explode('-', $id); 214 | $parts[0] = time() + $offset; 215 | $this->attributeHash['id'] = implode('-', $parts); 216 | } 217 | if (isset($this->attributeHash['t'])) { 218 | $this->attributeHash['t'] = time(); 219 | } 220 | } 221 | 222 | /** 223 | * Print human readable ProtocolNode object 224 | * 225 | * @return string 226 | */ 227 | public function __toString() 228 | { 229 | $readableNode = array( 230 | 'tag' => $this->tag, 231 | 'attributeHash' => $this->attributeHash, 232 | 'children' => $this->children, 233 | 'data' => $this->data 234 | ); 235 | 236 | return print_r($readableNode, true); 237 | } 238 | } 239 | -------------------------------------------------------------------------------- /src/events/AllEvents.php: -------------------------------------------------------------------------------- 1 | whatsProt = $whatsProt; 10 | return $this; 11 | } 12 | 13 | /** 14 | * Register the events you want to listen for. 15 | * 16 | * @param array $eventList 17 | * @return AllEvents 18 | */ 19 | public function setEventsToListenFor(array $eventList) 20 | { 21 | $this->eventsToListenFor = $eventList; 22 | return $this->startListening(); 23 | } 24 | 25 | /** 26 | * Binds the requested events to the event manager. 27 | * @return $this 28 | */ 29 | protected function startListening() 30 | { 31 | foreach ($this->eventsToListenFor as $event) { 32 | if (is_callable(array($this, $event))) { 33 | $this->whatsProt->eventManager()->bind($event, array($this, $event)); 34 | } 35 | } 36 | return $this; 37 | } 38 | 39 | //Adding to this list? Please put them in alphabetical order! 40 | public function onCallReceived($mynumber, $from, $id, $notify, $time, $callId) {} 41 | public function onClose($mynumber, $error) {} 42 | public function onCodeRegister($mynumber, $login, $password, $type, $expiration, $kind, $price, $cost, $currency, $price_expiration) {} 43 | public function onCodeRegisterFailed($mynumber, $status, $reason, $retry_after) {} 44 | public function onCodeRequest($mynumber, $method, $length) {} 45 | public function onCodeRequestFailed($mynumber, $method, $reason, $param) {} 46 | public function onCodeRequestFailedTooRecent($mynumber, $method, $reason, $retry_after) {} 47 | public function onCodeRequestFailedTooManyGuesses($mynumber, $method, $reason, $retry_after) {} 48 | public function onConnect($mynumber, $socket) {} 49 | public function onConnectError($mynumber, $socket) {} 50 | public function onCredentialsBad($mynumber, $status, $reason) {} 51 | public function onCredentialsGood($mynumber, $login, $password, $type, $expiration, $kind, $price, $cost, $currency, $price_expiration) {} 52 | public function onDisconnect($mynumber, $socket) {} 53 | public function onDissectPhone($mynumber, $phonecountry, $phonecc, $phone, $phonemcc, $phoneISO3166, $phoneISO639, $phonemnc) {} 54 | public function onDissectPhoneFailed($mynumber) {} 55 | public function onGetAudio($mynumber, $from, $id, $type, $time, $name, $size, $url, $file, $mimeType, $fileHash, $duration, $acodec, $fromJID_ifGroup = null) {} 56 | public function onGetBroadcastLists($mynumber, $broadcastLists){} 57 | public function onGetError($mynumber, $from, $id, $data) {} 58 | public function onGetExtendAccount($mynumber, $kind, $status, $creation, $expiration) {} 59 | public function onGetFeature($mynumber, $from, $encrypt) {} 60 | public function onGetGroupMessage($mynumber, $from_group_jid, $from_user_jid, $id, $type, $time, $name, $body) {} 61 | public function onGetGroups($mynumber, $groupList) {} 62 | public function onGetGroupV2Info( $mynumber, $group_id, $creator, $creation, $subject, $participants, $admins, $fromGetGroup ){} 63 | public function onGetGroupsSubject($mynumber, $group_jid, $time, $author, $name, $subject) {} 64 | public function onGetImage($mynumber, $from, $id, $type, $time, $name, $size, $url, $file, $mimeType, $fileHash, $width, $height, $preview, $caption) {} 65 | public function onGetGroupImage($mynumber, $from_group_jid, $from_user_jid, $id, $type, $time, $name, $size, $url, $file, $mimeType, $fileHash, $width, $height, $preview, $caption) {} 66 | public function onGetGroupVideo($mynumber, $from_group_jid, $from_user_jid, $id, $type, $time, $name, $url, $file, $size, $mimeType, $fileHash, $duration, $vcodec, $acodec, $preview, $caption) {} 67 | public function onGetKeysLeft($mynumber, $keysLeft) {} 68 | public function onGetLocation($mynumber, $from, $id, $type, $time, $name, $author, $longitude, $latitude, $url, $preview, $fromJID_ifGroup = null) {} 69 | public function onGetMessage($mynumber, $from, $id, $type, $time, $name, $body) {} 70 | public function onGetNormalizedJid($mynumber, $data) {} 71 | public function onGetPrivacyBlockedList($mynumber, $data) {} 72 | public function onGetProfilePicture($mynumber, $from, $type, $data) {} 73 | public function onGetReceipt($from, $id, $offline, $retry) {} 74 | public function onGetRequestLastSeen($mynumber, $from, $id, $seconds) {} 75 | public function onGetServerProperties($mynumber, $version, $props) {} 76 | public function onGetServicePricing($mynumber, $price, $cost, $currency, $expiration) {} 77 | public function onGetStatus($mynumber, $from, $requested, $id, $time, $data) {} 78 | public function onGetSyncResult($result) {} 79 | public function onGetVideo($mynumber, $from, $id, $type, $time, $name, $url, $file, $size, $mimeType, $fileHash, $duration, $vcodec, $acodec, $preview, $caption) {} 80 | public function onGetvCard($mynumber, $from, $id, $type, $time, $name, $vcardname, $vcard, $fromJID_ifGroup = null) {} 81 | public function onGroupCreate($mynumber, $groupId) {} 82 | public function onGroupisCreated($mynumber, $creator, $gid, $subject, $admin, $creation, $members = array()) {} 83 | public function onGroupsChatCreate($mynumber, $gid) {} 84 | public function onGroupsChatEnd($mynumber, $gid) {} 85 | public function onGroupsParticipantsAdd($mynumber, $groupId, $jid) {} 86 | public function onGroupsParticipantsPromote($myNumber, $groupJID, $time, $issuerJID, $issuerName, $promotedJIDs = array()) {} 87 | public function onGroupsParticipantsRemove($mynumber, $groupId, $jid) {} 88 | public function onLogin($mynumber) {} 89 | public function onLoginFailed($mynumber, $data) {} 90 | public function onLoginSuccess($mynumber, $kind, $status, $creation, $expiration) {} 91 | public function onAccountExpired($mynumber, $kind, $status, $creation, $expiration ){} 92 | public function onMediaMessageSent($mynumber, $to, $id, $filetype, $url, $filename, $filesize, $filehash, $caption, $icon) {} 93 | public function onMediaUploadFailed($mynumber, $id, $node, $messageNode, $statusMessage) {} 94 | public function onMessageComposing($mynumber, $from, $id, $type, $time) {} 95 | public function onMessagePaused($mynumber, $from, $id, $type, $time) {} 96 | public function onMessageReceivedClient($mynumber, $from, $id, $type, $time, $participant) {} 97 | public function onMessageReceivedServer($mynumber, $from, $id, $type, $time) {} 98 | public function onNumberWasAdded($mynumber, $jid) {} 99 | public function onNumberWasRemoved($mynumber, $jid) {} 100 | public function onNumberWasUpdated($mynumber, $jid) {} 101 | public function onPaidAccount($mynumber, $author, $kind, $status, $creation, $expiration) {} 102 | public function onPaymentRecieved($mynumber, $kind, $status, $creation, $expiration) {} 103 | public function onPing($mynumber, $id) {} 104 | public function onPresenceAvailable($mynumber, $from) {} 105 | public function onPresenceUnavailable($mynumber, $from, $last) {} 106 | public function onProfilePictureChanged($mynumber, $from, $id, $time) {} 107 | public function onProfilePictureDeleted($mynumber, $from, $id, $time) {} 108 | public function onSendMessage($mynumber, $target, $messageId, $node) {} 109 | public function onSendMessageReceived($mynumber, $id, $from, $type) {} 110 | public function onSendPong($mynumber, $msgid) {} 111 | public function onSendPresence($mynumber, $type, $name ) {} 112 | public function onSendStatusUpdate($mynumber, $txt ) {} 113 | public function onStreamError($data) {} 114 | public function onWebSync($mynumber, $from, $id, $syncData, $code, $name) {} 115 | } 116 | -------------------------------------------------------------------------------- /src/BinTreeNodeReader.php: -------------------------------------------------------------------------------- 1 | key = null; 12 | } 13 | 14 | public function setKey($key) 15 | { 16 | $this->key = $key; 17 | } 18 | 19 | public function nextTree($input = null) 20 | { 21 | if ($input != null) { 22 | $this->input = $input; 23 | } 24 | $firstByte = $this->peekInt8(); 25 | $stanzaFlag = ($firstByte & 0xF0) >> 4; 26 | $stanzaSize = $this->peekInt16(1) | (($firstByte & 0x0F) << 16); 27 | if ($stanzaSize > strlen($this->input)) { 28 | throw new Exception("Incomplete message $stanzaSize != " . strlen($this->input)); 29 | } 30 | $this->readInt24(); 31 | if ($stanzaFlag & 8) { 32 | if (isset($this->key)) { 33 | $realSize = $stanzaSize - 4; 34 | $this->input = $this->key->DecodeMessage($this->input, $realSize, 0, $realSize);// . $remainingData; 35 | } else { 36 | throw new Exception("Encountered encrypted message, missing key"); 37 | } 38 | } 39 | if ($stanzaSize > 0) { 40 | return $this->nextTreeInternal(); 41 | } 42 | 43 | return null; 44 | } 45 | 46 | protected function readNibble() { 47 | $byte = $this->readInt8(); 48 | 49 | $ignoreLastNibble = (bool) ($byte & 0x80); 50 | $size = ($byte & 0x7f); 51 | $nrOfNibbles = $size * 2 - (int) $ignoreLastNibble; 52 | 53 | $data = $this->fillArray($size); 54 | $string = ''; 55 | 56 | for ($i = 0; $i < $nrOfNibbles; $i++) { 57 | $byte = $data[(int) floor($i / 2)]; 58 | $ord = ord($byte); 59 | 60 | $shift = 4 * (1 - $i % 2); 61 | $decimal = ($ord & (15 << $shift)) >> $shift; 62 | 63 | switch ($decimal) { 64 | case 0: 65 | case 1: 66 | case 2: 67 | case 3: 68 | case 4: 69 | case 5: 70 | case 6: 71 | case 7: 72 | case 8: 73 | case 9: 74 | $string .= $decimal; 75 | break; 76 | case 10: 77 | case 11: 78 | $string .= chr($decimal - 10 + 45); 79 | break; 80 | default: 81 | throw new Exception("Bad nibble: $decimal"); 82 | } 83 | } 84 | 85 | return $string; 86 | } 87 | 88 | protected function getToken($token) 89 | { 90 | $ret = ""; 91 | $subdict = false; 92 | TokenMap::GetToken($token, $subdict, $ret); 93 | if (!$ret) { 94 | $token = $this->readInt8(); 95 | TokenMap::GetToken($token, $subdict, $ret); 96 | if (!$ret) { 97 | throw new Exception("BinTreeNodeReader->getToken: Invalid token $token"); 98 | } 99 | } 100 | 101 | return $ret; 102 | } 103 | 104 | protected function readString($token) 105 | { 106 | $ret = ""; 107 | 108 | if ($token == -1) { 109 | throw new Exception("BinTreeNodeReader->readString: Invalid token $token"); 110 | } 111 | 112 | if (($token > 2) && ($token < 0xf5)) { 113 | $ret = $this->getToken($token); 114 | } elseif ($token == 0) { 115 | $ret = ""; 116 | } elseif ($token == 0xfc) { 117 | $size = $this->readInt8(); 118 | $ret = $this->fillArray($size); 119 | } elseif ($token == 0xfd) { 120 | $size = $this->readInt24(); 121 | $ret = $this->fillArray($size); 122 | } elseif ($token == 0xfa) { 123 | $user = $this->readString($this->readInt8()); 124 | $server = $this->readString($this->readInt8()); 125 | if ((strlen($user) > 0) && (strlen($server) > 0)) { 126 | $ret = $user . "@" . $server; 127 | } elseif (strlen($server) > 0) { 128 | $ret = $server; 129 | } 130 | } elseif ($token == 0xff) { 131 | $ret = $this->readNibble(); 132 | } 133 | 134 | return $ret; 135 | } 136 | 137 | protected function readAttributes($size) 138 | { 139 | $attributes = array(); 140 | $attribCount = ($size - 2 + $size % 2) / 2; 141 | 142 | for ($i = 0; $i < $attribCount; $i++) { 143 | $key = $this->readString($this->readInt8()); 144 | $value = $this->readString($this->readInt8()); 145 | $attributes[$key] = $value; 146 | } 147 | 148 | return $attributes; 149 | } 150 | 151 | protected function nextTreeInternal() 152 | { 153 | $token = $this->readInt8(); 154 | $size = $this->readListSize($token); 155 | $token = $this->readInt8(); 156 | if ($token == 1) { 157 | $attributes = $this->readAttributes($size); 158 | 159 | return new ProtocolNode("start", $attributes, null, ""); 160 | } elseif ($token == 2) { 161 | return null; 162 | } 163 | $tag = $this->readString($token); 164 | $attributes = $this->readAttributes($size); 165 | if (($size % 2) == 1) { 166 | return new ProtocolNode($tag, $attributes, null, ""); 167 | } 168 | $token = $this->readInt8(); 169 | if ($this->isListTag($token)) { 170 | return new ProtocolNode($tag, $attributes, $this->readList($token), ""); 171 | } 172 | 173 | return new ProtocolNode($tag, $attributes, null, $this->readString($token)); 174 | } 175 | 176 | protected function isListTag($token) 177 | { 178 | return ($token == 248 || $token == 0 || $token == 249); 179 | } 180 | 181 | protected function readList($token) 182 | { 183 | $size = $this->readListSize($token); 184 | $ret = array(); 185 | for ($i = 0; $i < $size; $i++) { 186 | array_push($ret, $this->nextTreeInternal()); 187 | } 188 | 189 | return $ret; 190 | } 191 | 192 | protected function readListSize($token) 193 | { 194 | if ($token == 0xf8) { 195 | return $this->readInt8(); 196 | } elseif ($token == 0xf9) { 197 | return $this->readInt16(); 198 | } 199 | 200 | throw new Exception("BinTreeNodeReader->readListSize: Invalid token $token"); 201 | } 202 | 203 | protected function peekInt24($offset = 0) 204 | { 205 | $ret = 0; 206 | if (strlen($this->input) >= (3 + $offset)) { 207 | $ret = ord(substr($this->input, $offset, 1)) << 16; 208 | $ret |= ord(substr($this->input, $offset + 1, 1)) << 8; 209 | $ret |= ord(substr($this->input, $offset + 2, 1)) << 0; 210 | } 211 | 212 | return $ret; 213 | } 214 | 215 | protected function readInt24() 216 | { 217 | $ret = $this->peekInt24(); 218 | if (strlen($this->input) >= 3) { 219 | $this->input = substr($this->input, 3); 220 | } 221 | 222 | return $ret; 223 | } 224 | 225 | protected function peekInt16($offset = 0) 226 | { 227 | $ret = 0; 228 | if (strlen($this->input) >= (2 + $offset)) { 229 | $ret = ord(substr($this->input, $offset, 1)) << 8; 230 | $ret |= ord(substr($this->input, $offset + 1, 1)) << 0; 231 | } 232 | 233 | return $ret; 234 | } 235 | 236 | protected function readInt16() 237 | { 238 | $ret = $this->peekInt16(); 239 | if ($ret > 0) { 240 | $this->input = substr($this->input, 2); 241 | } 242 | 243 | return $ret; 244 | } 245 | 246 | protected function peekInt8($offset = 0) 247 | { 248 | $ret = 0; 249 | if (strlen($this->input) >= (1 + $offset)) { 250 | $sbstr = substr($this->input, $offset, 1); 251 | $ret = ord($sbstr); 252 | } 253 | 254 | return $ret; 255 | } 256 | 257 | protected function readInt8() 258 | { 259 | $ret = $this->peekInt8(); 260 | if (strlen($this->input) >= 1) { 261 | $this->input = substr($this->input, 1); 262 | } 263 | 264 | return $ret; 265 | } 266 | 267 | protected function fillArray($len) 268 | { 269 | $ret = ""; 270 | if (strlen($this->input) >= $len) { 271 | $ret = substr($this->input, 0, $len); 272 | $this->input = substr($this->input, $len); 273 | } 274 | 275 | return $ret; 276 | } 277 | } 278 | -------------------------------------------------------------------------------- /src/vCard.php: -------------------------------------------------------------------------------- 1 | data = array( 25 | 'display_name' => null, 26 | 'first_name' => null, 27 | 'last_name' => null, 28 | 'additional_name' => null, 29 | 'name_prefix' => null, 30 | 'name_suffix' => null, 31 | 'nickname' => null, 32 | 'title' => null, 33 | 'role' => null, 34 | 'department' => null, 35 | 'company' => null, 36 | 'work_po_box' => null, 37 | 'work_extended_address' => null, 38 | 'work_address' => null, 39 | 'work_city' => null, 40 | 'work_state' => null, 41 | 'work_postal_code' => null, 42 | 'work_country' => null, 43 | 'home_po_box' => null, 44 | 'home_extended_address' => null, 45 | 'home_address' => null, 46 | 'home_city' => null, 47 | 'home_state' => null, 48 | 'home_postal_code' => null, 49 | 'home_country' => null, 50 | 'office_tel' => null, 51 | 'home_tel' => null, 52 | 'cell_tel' => null, 53 | 'fax_tel' => null, 54 | 'pager_tel' => null, 55 | 'email1' => null, 56 | 'email2' => null, 57 | 'url' => null, 58 | 'photo' => null, 59 | 'birthday' => null, 60 | 'timezone' => null, 61 | 'sort_string' => null, 62 | 'note' => null, 63 | ); 64 | 65 | return true; 66 | } 67 | 68 | /** 69 | * Global setter. 70 | * 71 | * @param string $key 72 | * Name of the property. 73 | * @param mixed $value 74 | * Value to set. 75 | * 76 | * @return vCard 77 | * Return itself. 78 | */ 79 | public function set($key, $value) 80 | { 81 | // Check if the specified property is defined. 82 | if (property_exists($this, $key) && $key != 'data') { 83 | $this->{$key} = trim($value); 84 | return $this; 85 | } elseif (property_exists($this, $key) && $key == 'data') { 86 | foreach ($value as $v_key => $v_value) { 87 | $this->{$key}[$v_key] = trim($v_value); 88 | } 89 | return $this; 90 | } else { 91 | return false; 92 | } 93 | } 94 | 95 | /** 96 | * Checks all the values, builds appropriate defaults for 97 | * missing values and generates the vcard data string. 98 | */ 99 | function build() 100 | { 101 | if (!$this->class) { 102 | $this->class = 'PUBLIC'; 103 | } 104 | if (!$this->data['display_name']) { 105 | $this->data['display_name'] = $this->data['first_name'] . ' ' . $this->data['last_name']; 106 | } 107 | if (!$this->data['sort_string']) { 108 | $this->data['sort_string'] = $this->data['last_name']; 109 | } 110 | if (!$this->data['sort_string']) { 111 | $this->data['sort_string'] = $this->data['company']; 112 | } 113 | if (!$this->data['timezone']) { 114 | $this->data['timezone'] = date("O"); 115 | } 116 | if (!$this->revisionDate) { 117 | $this->revisionDate = date('Y-m-d H:i:s'); 118 | } 119 | 120 | $this->card = "BEGIN:VCARD\r\n"; 121 | $this->card .= "VERSION:3.0\r\n"; 122 | $this->card .= "CLASS:" . $this->class . "\r\n"; 123 | $this->card .= "PRODID:-//class_vCard from WhatsAPI//NONSGML Version 1//EN\r\n"; 124 | $this->card .= "REV:" . $this->revisionDate . "\r\n"; 125 | $this->card .= "FN:" . $this->data['display_name'] . "\r\n"; 126 | $this->card .= "N:" 127 | . $this->data['last_name'] . ";" 128 | . $this->data['first_name'] . ";" 129 | . $this->data['additional_name'] . ";" 130 | . $this->data['name_prefix'] . ";" 131 | . $this->data['name_suffix'] . "\r\n"; 132 | if ($this->data['nickname']) { 133 | $this->card .= "NICKNAME:" . $this->data['nickname'] . "\r\n"; 134 | } 135 | if ($this->data['title']) { 136 | $this->card .= "TITLE:" . $this->data['title'] . "\r\n"; 137 | } 138 | if ($this->data['company']) { 139 | $this->card .= "ORG:" . $this->data['company']; 140 | } 141 | if ($this->data['department']) { 142 | $this->card .= ";" . $this->data['department']; 143 | } 144 | $this->card .= "\r\n"; 145 | 146 | if ($this->data['work_po_box'] || $this->data['work_extended_address'] || $this->data['work_address'] || $this->data['work_city'] || $this->data['work_state'] || $this->data['work_postal_code'] || $this->data['work_country']) { 147 | $this->card .= "ADR;type=WORK:" 148 | . $this->data['work_po_box'] . ";" 149 | . $this->data['work_extended_address'] . ";" 150 | . $this->data['work_address'] . ";" 151 | . $this->data['work_city'] . ";" 152 | . $this->data['work_state'] . ";" 153 | . $this->data['work_postal_code'] . ";" 154 | . $this->data['work_country'] . "\r\n"; 155 | } 156 | 157 | if ($this->data['home_po_box'] || $this->data['home_extended_address'] || $this->data['home_address'] || $this->data['home_city'] || $this->data['home_state'] || $this->data['home_postal_code'] || $this->data['home_country']) { 158 | $this->card .= "ADR;type=HOME:" 159 | . $this->data['home_po_box'] . ";" 160 | . $this->data['home_extended_address'] . ";" 161 | . $this->data['home_address'] . ";" 162 | . $this->data['home_city'] . ";" 163 | . $this->data['home_state'] . ";" 164 | . $this->data['home_postal_code'] . ";" 165 | . $this->data['home_country'] . "\r\n"; 166 | } 167 | if ($this->data['email1']) { 168 | $this->card .= "EMAIL;type=INTERNET,pref:" . $this->data['email1'] . "\r\n"; 169 | } 170 | if ($this->data['email2']) { 171 | $this->card .= "EMAIL;type=INTERNET:" . $this->data['email2'] . "\r\n"; 172 | } 173 | if ($this->data['office_tel']) { 174 | $this->card .= "TEL;type=WORK,voice:" . $this->data['office_tel'] . "\r\n"; 175 | } 176 | if ($this->data['home_tel']) { 177 | $this->card .= "TEL;type=HOME,voice:" . $this->data['home_tel'] . "\r\n"; 178 | } 179 | if ($this->data['cell_tel']) { 180 | $this->card .= "TEL;type=CELL,voice:" . $this->data['cell_tel'] . "\r\n"; 181 | } 182 | if ($this->data['fax_tel']) { 183 | $this->card .= "TEL;type=WORK,fax:" . $this->data['fax_tel'] . "\r\n"; 184 | } 185 | if ($this->data['pager_tel']) { 186 | $this->card .= "TEL;type=WORK,pager:" . $this->data['pager_tel'] . "\r\n"; 187 | } 188 | if ($this->data['url']) { 189 | $this->card .= "URL;type=WORK:" . $this->data['url'] . "\r\n"; 190 | } 191 | if ($this->data['birthday']) { 192 | $this->card .= "BDAY:" . $this->data['birthday'] . "\r\n"; 193 | } 194 | if ($this->data['role']) { 195 | $this->card .= "ROLE:" . $this->data['role'] . "\r\n"; 196 | } 197 | if ($this->data['note']) { 198 | $this->card .= "NOTE:" . $this->data['note'] . "\r\n"; 199 | } 200 | if ($this->data['photo']) { 201 | $this->card .= $this->generatePhotoData(); 202 | } 203 | $this->card .= "TZ:" . $this->data['timezone'] . "\r\n"; 204 | $this->card .= "END:VCARD\r\n"; 205 | } 206 | 207 | protected function generatePhotoData() 208 | { 209 | $photo = $this->data['photo']; 210 | $data = "PHOTO;"; 211 | 212 | //detect type 213 | if (substr($photo, 0, 4) == 'http') { 214 | //url 215 | $data .= 'URL:' . $photo; 216 | } else { 217 | //path 218 | $bindata = file_get_contents($photo); 219 | $bindata = base64_encode($bindata); 220 | $data .= 'BASE64:' . $bindata; 221 | } 222 | $data .= "\r\n"; 223 | return $data; 224 | } 225 | 226 | /** 227 | * Streams the vcard to the browser client. 228 | * 229 | * @return bool 230 | */ 231 | function download() 232 | { 233 | if (!$this->card) { 234 | $this->build(); 235 | } 236 | 237 | if (!$this->filename) { 238 | $this->filename = $this->data['display_name']; 239 | } 240 | 241 | $this->filename = str_replace(' ', '_', $this->filename); 242 | 243 | header("Content-type: text/directory"); 244 | header("Content-Disposition: attachment; filename=" . $this->filename . ".vcf"); 245 | header("Pragma: public"); 246 | echo $this->card; 247 | 248 | return true; 249 | } 250 | 251 | /** 252 | * Show the vCard. 253 | * 254 | * @return object vCard 255 | */ 256 | function show() 257 | { 258 | if (!$this->card) { 259 | $this->build(); 260 | } 261 | 262 | return $this->card; 263 | } 264 | } 265 | -------------------------------------------------------------------------------- /src/countries.csv: -------------------------------------------------------------------------------- 1 | "Afghanistan",93,412,"AF","ps","040" 2 | "Albania",355,276,"AL","sq","002" 3 | "Alberta",1403,302,"CA","en","720" 4 | "Alberta",1780,302,"CA","en","720" 5 | "Algeria",213,603,"DZ","ar","001" 6 | "Andorra",376,213,"AD","ca","003" 7 | "Angola",244,631,"AO","pt","002" 8 | "Anguilla",1264,"365","AI","en","840" 9 | "Antarctica (Australian bases)",6721,232,"AQ","en","001" 10 | "Antigua and Barbuda",1268,"344","AG","en","050" 11 | "Argentina",54,722,"AR","es","010" 12 | "Armenia",374,283,"AM","hy","010" 13 | "Aruba",297,363,"AW","nl","001" 14 | "Ascension",247,658,"AC","en","001" 15 | "Australia",61,505,"AU","en","003" 16 | "Austria",43,232,"AT","de","001" 17 | "Azerbaijan",994,400,"AZ","az","001" 18 | "Bahamas",1242,"364","BS","en","039" 19 | "Bahrain",973,426,"BH","ar","001" 20 | "Bangladesh",880,470,"BD","bn","001" 21 | "Barbados",1246,"342","BB","en","750" 22 | "Belarus",375,257,"BY","be","001" 23 | "Belgium",32,206,"BE","nl","001" 24 | "Belize",501,702,"BZ","es","067" 25 | "Benin",229,616,"BJ","fr","003" 26 | "Bermuda",1441,350,"BM","en","001" 27 | "Bhutan",975,402,"BT","dz","011" 28 | "Bolivia",591,736,"BO","es","002" 29 | "Bosnia and Herzegovina",387,218,"BA","bs","003" 30 | "Botswana",267,652,"BW","en","002" 31 | "Brazil",55,724,"BR","pt","002" 32 | "British Columbia", 1250,302,"CA","en","370" 33 | "British Columbia", 1604,302,"CA","en","370" 34 | "British Columbia", 1778,302,"CA","en","370" 35 | "British Indian Ocean Territory",246,348,"IO","en","170" 36 | "British Virgin Islands",1284,"348","GB","en","170" 37 | "Brunei",673,528,"BN","ms","011" 38 | "Bulgaria",359,284,"BG","bg","003" 39 | "Burkina Faso",226,613,"BF","fr","002" 40 | "Burundi",257,642,"BI","rn","001" 41 | "Cambodia",855,456,"KH","km","002" 42 | "Cameroon",237,624,"CM","fr","001" 43 | "Cape Verde",238,625,"CV","pt","001" 44 | "Cayman Islands",1345,"346","GB","en","050" 45 | "Central African Republic",236,623,"CF","sg","001" 46 | "Chad",235,622,"TD","fr","003" 47 | "Chile",56,730,"CL","es","002" 48 | "China",86,"460|461","CN","en","001" 49 | "Colombia",57,732,"CO","es","102" 50 | "Comoros",269,654,"KM","fr","001" 51 | "Democratic Republic of the Congo",243,630,"CD","fr","086" 52 | "Republic of the Congo",242,629,"CG","fr","001" 53 | "Cook Islands",682,548,"CK","en","001" 54 | "Costa Rica",506,712,"CR","es","004" 55 | "Cote d'Ivoire",712,"612","CI","fr","002" 56 | "Croatia",385,219,"HR","hr","001" 57 | "Cuba",53,368,"CU","es","001" 58 | "Cyprus",357,280,"CY","el","001" 59 | "Czech Republic",420,230,"CZ","cs","001" 60 | "Denmark",45,238,"DK","da","001" 61 | "Djibouti",253,638,"DJ","fr","001" 62 | "Dominica",1767,"366","DM","en","020" 63 | "Dominican Republic",1809,"370","DO","es","001" 64 | "Dominican Republic",1829,"370","DO","en","001" 65 | "East Timor",670,514,"TL","pt","001" 66 | "Ecuador",593,740,"EC","es","001" 67 | "Egypt",20,602,"EG","ar","002" 68 | "El Salvador",503,706,"SV","es","001" 69 | "Equatorial Guinea",240,627,"GQ","es","003" 70 | "Eritrea",291,657,"ER","ti","001" 71 | "Estonia",372,248,"EE","et","001" 72 | "Ethiopia",251,636,"ET","am","001" 73 | "Falkland Islands",500,750,"FK","en","001" 74 | "Faroe Islands",298,288,"FO","fo","001" 75 | "Fiji",679,542,"FJ","en","001" 76 | "Finland",358,244,"FI","fi","005" 77 | "France",33,208,"FR","fr","001" 78 | "French Guiana",594,340,"GF","fr","011" 79 | "French Polynesia",689,547,"PF","fr","015" 80 | "Gabon",241,628,"GA","fr","001" 81 | "Gambia",220,607,"GM","en","001" 82 | "Gaza Strip",970,0,"PS","ar","001" 83 | "Georgia",995,282,"GE","ka","001" 84 | "Germany",49,262,"DE","de","001" 85 | "Ghana",233,620,"GH","ak","001" 86 | "Gibraltar",350,266,"GI","en","001" 87 | "Greece",30,202,"GR","el","001" 88 | "Greenland",299,290,"GL","kl","001" 89 | "Grenada",1473,"352","GD","en","030" 90 | "Guadeloupe",590,340,"GP","fr","002" 91 | "Guam",1671,"310","GU","en","032" 92 | "Guatemala",502,704,"GT","es","001" 93 | "Guinea",224,611,"GN","fr","001" 94 | "Guinea-Bissau",245,632,"GW","pt","001" 95 | "Guyana",592,738,"GY","pt","001" 96 | "Haiti",509,372,"HT","fr","001" 97 | "Honduras",504,708,"HN","es","001" 98 | "Hong Kong",852,454,"HK","zh","006" 99 | "Hungary",36,216,"HU","hu","001" 100 | "Iceland",354,274,"IS","is","001" 101 | "India",91,"404|405|406","IN","hi","011" 102 | "Indonesia",62,510,"ID","id","001" 103 | "Iraq",964,418,"IQ","ar","020" 104 | "Iran",98,432,"IR","fa","011" 105 | "Ireland (Eire)",353,272,"IE","en","001" 106 | "Israel",972,425,"IL","he","001" 107 | "Italy",39,222,"IT","it","001" 108 | "Jamaica",1876,"338","JM","en","050" 109 | "Japan",81,"440|441","JP","ja","001" 110 | "Jordan",962,416,"JO","ar","001" 111 | "Kazakhstan",77,401,"KZ","kk","001" 112 | "Kenya",254,639,"KE","sw","002" 113 | "Kiribati",686,545,"KI","en","009" 114 | "Kuwait",965,419,"KW","ar","003" 115 | "Kyrgyzstan",996,437,"KG","ky","001" 116 | "Laos",856,457,"LA","lo","001" 117 | "Latvia",371,247,"LV","lv","001" 118 | "Lebanon",961,415,"LB","ar","003" 119 | "Lesotho",266,651,"LS","st","001" 120 | "Liberia",231,618,"LR","en","007" 121 | "Libya",218,606,"LY","ar","003" 122 | "Liechtenstein",423,295,"LI","de","001" 123 | "Lithuania",370,246,"LT","lt","001" 124 | "Luxembourg",352,270,"LU","fr","001" 125 | "Macau",853,455,"MO","pt","004" 126 | "Republic of Macedonia",389,294,"MK","mk","001" 127 | "Madagascar",261,646,"MG","mg","001" 128 | "Malawi",265,650,"MW","ny","001" 129 | "Malaysia",60,502,"MY","en","013" 130 | "Maldives",960,472,"MV","dv","001" 131 | "Mali",223,610,"ML","fr","001" 132 | "Malta",356,278,"MT","mt","001" 133 | "Manitoba",1204,302,"CA","en","370" 134 | "Marshall Islands",692,551,"MH","mh","001" 135 | "Martinique",596,340,"MQ","fr","001" 136 | "Mauritania",222,609,"MR","ar","002" 137 | "Mauritius",230,617,"MU","en","001" 138 | "Mayotte",262,654,"YT","fr","001" 139 | "Mexico",52,334,"MX","es","030" 140 | "Federated States of Micronesia",691,550,"FM","en","001" 141 | "Moldova",373,259,"MD","ru","001" 142 | "Monaco",377,212,"MC","fr","001" 143 | "Mongolia",976,428,"MN","mn","088" 144 | "Montenegro",382,297,"ME","sr","001" 145 | "Montserrat",1664,"354",MS,"en","860" 146 | "Morocco",212,"604","MA","ar","001" 147 | "Mozambique",258,643,"MZ","pt","001" 148 | "Myanmar",95,414,"MM","my","005" 149 | "Namibia",264,649,"NA","en","001" 150 | "Nauru",674,536,"NR","na","002" 151 | "Netherlands",31,204,"NL","nl","004" 152 | "Netherlands Antilles",599,362,"AN","nl","069" 153 | "Nepal",977,429,"NP","ne","001" 154 | "New Brunswick",1506,302,"CA","en","370" 155 | "New Caledonia",687,546,"NC","fr","001" 156 | "New Zealand",64,530,"NZ","en","001" 157 | "Newfoundland",1709,302,"CA","en","370" 158 | "Nicaragua",505,710,"NI","es","030" 159 | "Niger",227,614,"NE","fr","004" 160 | "Nigeria",234,621,"NG","ha","020" 161 | "Niue",683,555,"NU","en","001" 162 | "Norfolk Island",6723,505,"NF","en","010" 163 | "North Korea",850,467,"KP","ko","005" 164 | "Northern Mariana Islands",1670,"534","MP","en","001" 165 | "Northwest Territories",1867,302,"CA","en","370" 166 | "Norway",47,242,"NO","nb","001" 167 | "Nova Scotia",1902,302,"CA","en","370" 168 | "Oman",968,422,"OM","ar","002" 169 | "Ontario",1416,302,"CA","en","370" 170 | "Ontario",1519,302,"CA","en","370" 171 | "Ontario",1613,302,"CA","en","370" 172 | "Ontario",1647,302,"CA","en","370" 173 | "Ontario",1705,302,"CA","en","370" 174 | "Ontario",1807,302,"CA","en","370" 175 | "Ontario",1905,302,"CA","en","370" 176 | "Pakistan",92,410,"PK","en","001" 177 | "Palau",680,552,"PW","en","001" 178 | "Palestine",970,425,"PS","ar","006" 179 | "Panama",507,714,"PA","es","002" 180 | "Papua New Guinea",675,537,"PG","ho","001" 181 | "Paraguay",595,744,"PY","es","001" 182 | "Peru",51,716,"PE","es","006" 183 | "Philippines",63,515,"PH","fil","002" 184 | "Poland",48,260,"PL","pl","001" 185 | "Portugal",351,268,"PT","pt","001" 186 | "Qatar",974,427,"QA","ar","001" 187 | "Quebec",1418,302,"CA","en","370" 188 | "Quebec",1450,302,"CA","en","370" 189 | "Quebec",1514,302,"CA","en","370" 190 | "Quebec",1819,302,"CA","en","370" 191 | "Reunion",262,647,"RE","fr","002" 192 | "Romania",40,226,"RO","ro","001" 193 | "Russia",79,250,"RU","ru","001" 194 | "Rwanda",250,635,"RW","rw","013" 195 | "Saint-Barthelemy",590,340,"BL","fr","001" 196 | "Saint Helena",290,658,"SH","en","000" 197 | "Saint Kitts and Nevis",1869,"356","KN","en","050" 198 | "Saint Lucia",1758,"358","LC","en","050" 199 | "Saint Martin (French side)",590,340, "MF","fr","001" 200 | "Saint Pierre and Miquelon",508,308,"PM","fr","001" 201 | "Saint Vincent and the Grenadines",1670,"360","VC","en","070" 202 | "Samoa",685,549,"WS","sm","001" 203 | "Sao Tome and Principe",239,626,"ST","pt","001" 204 | "Saskatchewan",1306,302,"CA","en","370" 205 | "Saudi Arabia",966,420,"SA","ar","001" 206 | "Senegal",221,608,"SN","wo","001" 207 | "Serbia",381,220,"RS","sr","001" 208 | "Seychelles",248,633,"SC","fr","001" 209 | "Sierra Leone",232,619,"SL","en","001" 210 | "Singapore",65,525,"SG","en","001" 211 | "Slovakia",421,231,"SK","sk","001" 212 | "Slovenia",386,293,"SI","sl","031" 213 | "Solomon Islands",677,540,"SB","en","001" 214 | "Somalia",252,637,"SO","so","001" 215 | "South Africa",27,655,"ZA","xh","001" 216 | "South Korea",82,450,"KR","ko","005" 217 | "South Sudan",211,659,"SS","en","002" 218 | "Spain",34,214,"ES","es","007" 219 | "Sri Lanka",94,413,"LK","si","001" 220 | "Sudan",249,634,"SD","ar","001" 221 | "Suriname",597,746,"SR","nl","002" 222 | "Swaziland",268,653,"SZ","ss","010" 223 | "Sweden",46,240,"SE","sv","001" 224 | "Switzerland",41,228,"CH","de","001" 225 | "Syria",963,417,"SY","ar","001" 226 | "Taiwan",886,466,"TW","cmn","001" 227 | "Tajikistan",992,436,"TJ","tg","001" 228 | "Tanzania",255,640,"TZ","sw","002" 229 | "Thailand",66,520,"TH","th","018" 230 | "Togo",228,615,"TG","fr","001" 231 | "Tokelau",690,690,"TK","tkl","001" 232 | "Tonga",676,539,"TO","to","001" 233 | "Trinidad and Tobago",1868,"374","TT","en","012" 234 | "Tunisia",216,605,"TN","ar","001" 235 | "Turkey",90,286,"TR","tr","001" 236 | "Turkmenistan",993,438,"TM","tk","001" 237 | "Turks and Caicos Islands",1649,"376","TC","en","350" 238 | "Tuvalu",688,553,"TV","tvl","001" 239 | "Uganda",256,641,"UG","sw","001" 240 | "Ukraine",380,255,"UA","uk","001" 241 | "United Arab Emirates",971,"424|430|431","AE","ar","003" 242 | "United Kingdom",44,"234|235","GB","en","002" 243 | "United States of America",1,"310|311|312|313|314|315|316","US","en","150" 244 | "Uruguay",598,748,"UY","es","007" 245 | "Uzbekistan",998,434,"UZ","uz","001" 246 | "Vanuatu",678,541,"VU","bi","005" 247 | "Venezuela",58,734,"VE","es","004" 248 | "Vietnam",84,452,"VN","vi","001" 249 | "U.S. Virgin Islands",1340,"332","VI","en","001" 250 | "Wallis and Futuna",681,543,"WF","fr","001" 251 | "West Bank",970,0,"PS","ar","001" 252 | "Yemen",967,421,"YE","ar","001" 253 | "Zambia",260,645,"ZM","en","001" 254 | "Zimbabwe",263,648,"ZW","en","001" 255 | -------------------------------------------------------------------------------- /src/tokenmap.class.php: -------------------------------------------------------------------------------- 1 | = 236 && $token < (236 + count(self::$secondaryStrings))) { 490 | $subdict = true; 491 | } 492 | 493 | if ($subdict) { 494 | $tokenMap = self::$secondaryStrings; 495 | } else { 496 | $tokenMap = self::$primaryStrings; 497 | } 498 | 499 | if ($token < 0 || $token > count($tokenMap)) { 500 | return;//fail 501 | } 502 | 503 | $string = $tokenMap[$token]; 504 | if (!$string) { 505 | throw new Exception("Invalid token/length in GetToken"); 506 | } 507 | } 508 | } 509 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | {description} 294 | Copyright (C) {year} {fullname} 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | {signature of Ty Coon}, 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /src/func.php: -------------------------------------------------------------------------------- 1 | $height) { 52 | $y = 0; 53 | $x = ($width - $height) / 2; 54 | $smallestSide = $height; 55 | } else { 56 | $x = 0; 57 | $y = ($height - $width) / 2; 58 | $smallestSide = $width; 59 | } 60 | 61 | $size = 639; 62 | $image = imagecreatetruecolor($size, $size); 63 | $img = imagecreatefromstring(file_get_contents($path)); 64 | 65 | imagecopyresampled($image, $img, 0, 0, $x, $y, $size, $size, $smallestSide, $smallestSide); 66 | ob_start(); 67 | imagejpeg($image); 68 | $i = ob_get_contents(); 69 | ob_end_clean(); 70 | 71 | imagedestroy($image); 72 | imagedestroy($img); 73 | 74 | return $i; 75 | } 76 | 77 | function createIcon($file) 78 | { 79 | if ((extension_loaded('gd')) && (file_exists($file))) { 80 | return createIconGD($file); 81 | } else { 82 | return base64_decode(giftThumbnail()); 83 | } 84 | } 85 | 86 | function createIconGD($file, $size = 100, $raw = true) 87 | { 88 | list($width, $height) = getimagesize($file); 89 | if ($width > $height) { 90 | $y = 0; 91 | $x = ($width - $height) / 2; 92 | $smallestSide = $height; 93 | } else { 94 | $x = 0; 95 | $y = ($height - $width) / 2; 96 | $smallestSide = $width; 97 | } 98 | 99 | $image_p = imagecreatetruecolor($size, $size); 100 | $image = imagecreatefromstring(file_get_contents($file)); 101 | 102 | imagecopyresampled($image_p, $image, 0, 0, $x, $y, $size, $size, $smallestSide, $smallestSide); 103 | ob_start(); 104 | imagejpeg($image_p); 105 | $i = ob_get_contents(); 106 | ob_end_clean(); 107 | 108 | imagedestroy($image); 109 | imagedestroy($image_p); 110 | 111 | return $i; 112 | } 113 | 114 | function createVideoIcon($file) 115 | { 116 | /* should install ffmpeg for the method to work successfully */ 117 | if (checkFFMPEG()) { 118 | //generate thumbnail 119 | $preview = sys_get_temp_dir() . '/' . md5($file) . '.jpg'; 120 | @unlink($preview); 121 | 122 | //capture video preview 123 | $command = "ffmpeg -i \"" . $file . "\" -f mjpeg -ss 00:00:01 -vframes 1 \"" . $preview . "\""; 124 | exec($command); 125 | 126 | return createIconGD($preview); 127 | } else { 128 | return base64_decode(videoThumbnail()); 129 | } 130 | } 131 | 132 | function checkFFMPEG() 133 | { 134 | //check if ffmpeg is installed. 135 | $output = array(); 136 | $returnvalue = false; 137 | 138 | exec('ffmpeg -version', $output, $returnvalue); 139 | 140 | return ($returnvalue === 0); 141 | } 142 | 143 | function giftThumbnail() 144 | { 145 | return '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'; 146 | } 147 | 148 | function videoThumbnail() 149 | { 150 | return '/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MTQyRUVCOEI3MDgxMUUyQjNGQkY1OEU5M0U2MDE1MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2MTQyRUVCOUI3MDgxMUUyQjNGQkY1OEU5M0U2MDE1MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjYxNDJFRUI2QjcwODExRTJCM0ZCRjU4RTkzRTYwMTUzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjYxNDJFRUI3QjcwODExRTJCM0ZCRjU4RTkzRTYwMTUzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQsJCw0PDg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAZABkAwERAAIRAQMRAf/EALUAAAEEAwEBAQAAAAAAAAAAAAAGBwgJBAUKAwECAQEAAQUBAQAAAAAAAAAAAAAAAwECBAYHBQgQAAAFBAADBAUFDQkBAAAAAAECAwQFABEGByESCDFRIhNBYTIUCYEz07QVcZGhUmKCkqIjZWZ2OHKzJHSEJZUWNhcRAAIBAQMHCAgEBwEAAAAAAAABAgMRBAUhMdGScwYWQVGRseFSJAdhcaEiQrLSNcESE1PwgTJyI2M0F//aAAwDAQACEQMRAD8Av8oAoAoAoAoAoAoAoAoAoAoAoAoAoAoAoAoDHcPGjQomdOkWxShzGMqcpAAA9NzCHCgEe/2draKAxpPYONx4E4n95lWaVv01QoDBLtvXKxUDsspbSyTohTtV4wiz9NUpvZEijVNUpr+oaAZCa64umuEUXRPnLqScN1DJKt2ENKLmBQhuUxBN7qBQEBCw3GgHTf7gTaRDibb6+y5+ybslXwnK0aoiZJFIVjAQF3SYiblDgFqAhEx+KDrybyTHsbhNaThFckkmka0fzMnFx6CZ3ipUiHV8tdyYCgJuPC9APDvbZG/sS1lnubYkrBMZPDY5zJfYibhJ44VTbiAqcoHYn4JkAxh8Ijw7KAxOgHqKyfqK1FMTObyjWZy7GZ5aPkZVmVJNFw3WSI5anKmig2KSxTiQfBx5b3G9ATpoBP5ZKuYLFslm2ZElHkPFPHzVNfm8oyjdA6pAU5fFyiJQvbjagKXMj+IbmSbhw1hMhlpVqkPISTJFRkcCwhwMciShHByFEfZAxxNbt40A9nSx1JOd2LZxCZdO5QTI4b3eQimycr7sVePU/ZKmKDYEuKatuYA9BgoBout3Mdga5m8SnsYeShsNyVmZgsR1MSSoN5RpcxiiALAWyyRgMHrKNALPoj21D7HwvIseyLGYJ7m2GSBnKzpw3FZRzHPx5kVv2hhNdJQDJiN/xe+gIpddkJlWv9poZTDqlY4ns1sLxqmi2TBNvJNClSeNwMJRHxF5VShfsEe6gJndDu8pLYmm20JIySSeU6oXJCv1OVFJRSPOAqR7oR5QvcvMmI/jF9dAVz9Yelswg93zymDNJjJsWz9McgjEIQyz4GbhwYSvWhyNRP5YlWATkAQDwm4dlAWrdLWV7AyjS2HG2PjWTQ2bY0QYOXbSsRKCo/TZABWz0pfdzc5VkeUDflANAVi7o+Hdvd3t3OSaj1s7kNfyz77WxiROu0jwalff4g7YAdrInAWyphAvh7LekKAuT1hi24VNc4c32fg5i5w2iUY7MkE3sc4bO1UieQdUDlciBgXTABOAh2iIcaAxujTpaddMEZtSOPKouonOcpPLYxDpAJlI2NIUwIN11fZOoHOIDyXKBSl4iIjYCaVAJ/LW6jvFcmaIoi5VdRL1JJuWwioY6BygUL8OIjbjQHNDvpzgLrNwVxpvjaavlOCz44CVVvBmODo/uQpJugMAOAa8oORSAExU4l9NALHo/SScdQOF/wDX2kuko2RfLZA597S8r7MBAQcFUICPEDmEgBx9q1AT363ZbA4zQj1DIIl9MO5ObjkcbYqO00hF4mcVTrAYiQGAE0SnvbtvagIh9CCMPNbinZGGxd7AxUFjDks/IN5AwmU98VIm2bjzJiA3OUTcezlvQD+9cWdYtrHFMCbQ7B87yzIZpd21I+dIuwRYtERKuqBHCKpScx1CFASlAaAxOhrYGU7RPsKeyf7RJjGNFYxkGZsug1N9pK86y3lmbt0hHlR5QG4j20BreuHqayjUeT4FhuucyyuHlV4tzL5QmjLAYARXUKmyKYFEj2MPlnMFrcKAdfoo2LsbZ2scgzrZGW5fKISOQKMsSVPMGTN7sySKRyYPKTTKJRWMIAIgPZQETes/q22DgG7HuC6y2TmcLH4zDsksiQSl01SBJuAM4UDmWRUMAkSOmBgva/ooCc3SXkme5fojDMt2ZluZS+S5eo7k2LlSYMkqMcusJWRTFSTTLxIXmCxb2MF6AVXSXuyT2hvDqsxhtk8pPYHryWhWGJtZRYjszZcEnLeQMg55QUMmou3EQKcTWELltegJ+0B+FEyKpnSULzJqFEpyj6QELCFAcpmzcWLj21NhYtDFI3gYDIpaPiET3OqRu0dKJpFOe4cwgUoAI241tW5+B0MYvkqFdyUVBy92xO1NLlTyZTwN48Xnhd2jVgk25KOX1N/gLHTW0Mv0hKzs3isXByknPs02C7mXRWVFBBNTzRKj5Sqduc1uYRv2BXRX5a4Z+5V6Y/SaZHf28csI9D0mXunbuwd8BjieXkiYxpjHvBmDGIRVSSOq55QOqqCqqgiYClAoWtYKs/8AN8N/cq9MfpL+O7xyQj0PSZ+lty51omMnozD4bHX45I7SdycjLILquB8hMU0kiiksmAELcRtbtEatflxhv7lXpj9Jct+rx3I9D0iX3FlWZ75ydjlOZqsmTqMjiRkdHRaZ02qKJTmUMYpVTqG5lDmuYb+gKjfl3hq+Or0x+kuW/F47kPbpHa07u3YmlsLQwXD4bGl4sj1zIuH0g2cKO3Dl0ICc6p01yFHlApSlsHAAqN+X2HL46vTH6S5b7XjuQ9ukZzaMLO7lzqc2Fl0mCM7PAgRVuwTAjVuk2SBFJFAignMBSlC/ER4iI1G9wcOXx1elaCq30vHch7dJJvXG/dl6wwrFcBxeExT7AxBoVnHe9M3B1lQA4qHVXMVwUDHUOYTGEACrHuHh/fqdK0F63zvHch7dJEjLtPq5/k+T5dkeQPHE3mEi5k5pZMCFKZZ0fmOUlwEQKUPCUL8AAKs4Fw/v1OlaCvGVfuR9ukmybqd3BiuHCyg4bEI5li8IRjBpkZOQBuk1QBBAS3c25iAACH5VY1+3LuNC7VKsZVPzRg5LKrLUrcuTMTXTe6tWr06bhGyUkuXlfrHm+D7jccjqHaOaqpnWyrI8yOxmpVQ5jCsiybpuEgEo8AHzXixjD6eb1BXL07Ub+85bzVSgUBy9boNy7v2uP8Xz311auheWn3Kpsn8yNK39VtwhtF1MQAKca7W2cnUT1BSo2yVRMlI17CI2KHC49ny1FJkiiKBsTsrHlIlUTfN06x5SJFE3aCXZwqGUi9I3DdsJrcKjbK22G5TbJpJmVVMVNMgXOc3AAqiI2xu84fKPoKVTQAyTFJHmsPAVBAweI3q7gqDE4fluNfn/AE59Rl4XLxtHaR6yxj4RX9Pmcfz8++pM6+e45kdxlnZaxVxQKA5dN3m5d27WH+MZ764tXQfLX7lU2T+ZGm79K24w2i6mNuCldpbOVqJ7EPcQCopMlUR9tIIIOMgmEHCCblBSKEFEVSFOQweaXtKYBCvGxebVOLTsy/gZ9yinJ28w9EnqjGJLmVYFVgnJuIC28SN/WibgH5ohXlQxKrDP7y9OkzJ3OEs2QQkhrDJ4q526BJpsXj5zP27B3pG8QfJesuGIU558j9Okxp3WcfSadszOU4pqkMmoUbGSOUSmAfWUbCFZDdpjt2G4FRuyKHmjzqdpUC+0P3e75aKLZE5GrcC5fmAVfCkXimgX2Q9Y94+upoxUSNyE9lbLy8Wnj29loYf1i1h4q/A19nPqZl4VLxtDaR6ywf4RP9Pmcfz8++pM6+eY5kd2lnZaxVxQKA5b96m5d1bVH+Mp364tW/8Alv8AcqmyfzI0/fdW3GG0XUxrQU9ddnbOYqJmtjcxr1FJkiiSG0V/6WV9cWP96WvFxd/416zOuUfefqJYtyXtWutnpG2TOikUTmOFicREPR90ewKtsbLWxD5PleErFO2fkRmXIBy+W0KB1Sj/AJgtgL9+s+7XWussfdXp0GFXr0fiyv8AjlGUO1ZqulVGDZVq1ON0kFlfOUL/AGj2C/3q9yP5kvedr6DyJyTeTIjZosOAcPRVbSFyNJm7Ly8Myc9rcrA4/rFrBxR+Cr7Ofysy8KfjaG0j1k2/hE/0+Zx/Pz76kyr58jmR3yWdlrFXFAoDlp34Ntz7UH+M5364vW/+XH3Kpsn8yNS30/4obRdTGhFyQnaYa7KzmkUZjV+QtgAhjD8gVFJEqiPnp/J46DmpV/MOk41mMaKaahwMcx1BUKIEKUoCIjYOyvLxGhKrBKKtdpkXecYSbb5B2pHcwKCKWPxh1Q7CvX48pfulRIN/0hrDpYTyzf8AJaRUvy+FdIkHU/Pz5ry0ms4SEfC1IPlol9QJksH3716FO706X9K0nn1a8p52bNg1AAAAKAB6ACr2YzkKto1CxfDUbI2xRt2YCHs1Y2WNie2E0AmBZce1uWNUG/5xawsTfg6+zn8rM3Cn46htI9ZLL4RP9Pecfz6++pMq+f45kd/lnZaxVxQKA5Y+oI/LuTahr8BzSd4/6xet+8ufuM9k+tGqb4q25x/vXUxjTKCYbBXZWznKjYbmORuICPbVrRbKQuY9H2eAVY0Y8pC4YI+yNqjaIZSFqxR7OFWNETkLJikHDhUTI3IVzJELF7KjZY2KlogA24VEylpoNmNuXXOaGt2RSo/hLWDiL8JX2c/lZm4U/G0NpDrRIj4RSyJen7OEhUKCn/fnvgvx8TFmIcPkGuBRzI+g5Z2Wu1cWn4Nfhb0CFwoDnh3j0ub5ktr7HeMtWT8zGSOSychGycc3Mugqi6drLJKJqkAwCBk1AuFrgPAbCFejheK3jDK3613aUrLMqtTT5LDEvtxpXyn+nVVqtt5sozanSv1AIcf/AIrmNg9P2esIfgSrYuPsV70NRaTyHurcXyS1uw8y9OXUMh83pjLwt+7V/oacfYr3oai0kb3Rw98ktbsPcmiepdH5rTWXcO+NW+hpx9ivehqLSWvc7DnyT1noMkun+qlH5rTWWcP3Wr9DVOPcU56eotJbwZhvNPWegyC6z6ukfmtN5X8sUp9DVOPMU56ep2lvBWG809d6D2Lg/WWl81pnKf8AiT/Q1TjrE+enqdpTgjDOaeu9B7FxrraS+b0zlFg7P9oN9DVOOcS/16naU4Hwzmnr9hkkiOuwogCOlsnMPoD7HH6Gqcb4l/r1O0pwPhnNPX7DEnsM698mhn0G70llAMpFPy3HLGeWIlvew2IQRD1XrHvO92IXilKlJwSkrHZGx2PPltdlpPddz8Ou1WNWMZOUXarZNq1ZnZZyE0/h6aF6idVsX5c3xh1iOPykoZ8ES/EpHJjAkRIyp0wMPLzCXgA8eF61k2guO5T+Ty38XLb5aA9qALUB8sHdQBYO4KALB3BQBYO4KALB3BQBYO4KALB3BQBYO6gCwd1AfaAKAKAKAKAKAKAKAKAKAKAKAKAKAKA//9k='; 151 | } 152 | function updateData($nameFile, $WAver, $WAToken = null) 153 | { 154 | $file = __DIR__ . "/" . $nameFile; 155 | $open = fopen($file, 'r+'); 156 | $content = fread($open, filesize($file)); 157 | fclose($open); 158 | 159 | $content = explode("\n", $content); 160 | 161 | if ($file == __DIR__ . '/token.php') { 162 | $content[22] = ' $releaseTime = \'' . $WAToken .'\';'; 163 | } else { 164 | if ($file == __DIR__ . '/Constants.php') { 165 | $content[21] = ' const WHATSAPP_VER = \'' . trim($WAver) . '\'; // The WhatsApp version.'; 166 | $content[22] = ' const WHATSAPP_USER_AGENT = \'WhatsApp/' . trim($WAver) . ' S40Version/14.26 Device/Nokia302\'; // User agent used in request/registration code.'; 167 | } 168 | } 169 | 170 | $content = implode("\n", $content); 171 | 172 | file_put_contents($file, $content); 173 | } 174 | 175 | /** 176 | * This function generates a paymentLink where you can extend the account-expiration. 177 | * 178 | * @param string $number Your number with international code, e.g. 49123456789 179 | * @param int $sku The Time in years (1, 3 or 5) you want to extend the account-expiration. 180 | * 181 | * @return string Returns the link. 182 | **/ 183 | function generatePaymentLink($number, $sku) 184 | { 185 | return sprintf("https://www.whatsapp.com/payments/cksum_pay.php?phone=%s&cksum=%s&sku=%d", 186 | $number, 187 | md5($number."abc"), 188 | $sku, 189 | ($sku != 1 && $sku != 3 && $sku != 5) ? 1 : $sku); 190 | } 191 | 192 | // Gets mime type of a file using various methods 193 | function get_mime($file) 194 | { 195 | if (function_exists("finfo_file")) { 196 | $finfo = finfo_open(FILEINFO_MIME_TYPE); 197 | $mime = finfo_file($finfo, $file); 198 | finfo_close($finfo); 199 | return $mime; 200 | } 201 | 202 | if (function_exists("mime_content_type")) { 203 | return mime_content_type($file); 204 | } 205 | 206 | if (!strncasecmp(PHP_OS, 'WIN', 3) == 0 && !stristr(ini_get("disable_functions"), "shell_exec")) { 207 | $file = escapeshellarg($file); 208 | $mime = shell_exec("file -bi " . $file); 209 | return $mime; 210 | } 211 | 212 | return false; 213 | } 214 | -------------------------------------------------------------------------------- /src/networkinfo.csv: -------------------------------------------------------------------------------- 1 | 289,649,088,2191,ab,Abkhazia,7,A-Mobile 2 | 289,649,068,1679,ab,Abkhazia,7,A-Mobile2 3 | 289,649,067,1663,ab,Abkhazia,7,Aquafon 4 | 412,1042,088,2191,af,Afghanistan,93,Afghan Telecom Corp. (AT) 5 | 412,1042,080,2063,af,Afghanistan,93,Afghan Telecom Corp. (AT)2 6 | 412,1042,001,31,af,Afghanistan,93,Afghan Wireless/AWCC 7 | 412,1042,040,1039,af,Afghanistan,93,Areeba 8 | 412,1042,050,1295,af,Afghanistan,93,Etisalat 9 | 412,1042,020,527,af,Afghanistan,93,Roshan 10 | 276,630,001,31,al,Albania,355,AMC Mobil 11 | 276,630,003,63,al,Albania,355,Eagle Mobile 12 | 276,630,004,79,al,Albania,355,PLUS Communication Sh.a 13 | 276,630,002,47,al,Albania,355,Vodafone 14 | 603,1539,001,31,dz,Algeria,213,ATM Mobils 15 | 603,1539,002,47,dz,Algeria,213,Orascom / DJEZZY 16 | 603,1539,003,63,dz,Algeria,213,Wataniya / Nedjma 17 | 544,1348,011,287,as,American Samoa,684,Blue Sky Communications 18 | 213,531,003,63,ad,Andorra,376,Mobiland 19 | 631,1585,004,79,ao,Angola,244,MoviCel 20 | 631,1585,002,47,ao,Angola,244,Unitel 21 | 365,869,840,2112,ai,Anguilla,1264,Cable and Wireless 22 | 365,869,010,16,ai,Anguilla,1264,Digicell / Wireless Vent. Ltd 23 | 344,836,030,48,ag,Antigua and Barbuda,1268,APUA PCS 24 | 344,836,920,2336,ag,Antigua and Barbuda,1268,C & W 25 | 344,836,930,2352,ag,Antigua and Barbuda,1268,Cing. Wirel./DigiCel 26 | 722,1826,310,784,ar,Argentina Republic,54,Claro/ CTI/AMX 27 | 722,1826,330,816,ar,Argentina Republic,54,Claro/ CTI/AMX2 28 | 722,1826,320,800,ar,Argentina Republic,54,Claro/ CTI/AMX3 29 | 722,1826,010,16,ar,Argentina Republic,54,Compania De Radiocomunicaciones Moviles SA 30 | 722,1826,070,112,ar,Argentina Republic,54,Movistar/Telefonica 31 | 722,1826,020,32,ar,Argentina Republic,54,Nextel 32 | 722,1826,341,833,ar,Argentina Republic,54,Telecom Personal S.A. 33 | 283,643,001,31,am,Armenia,374,ArmenTel/Beeline 34 | 283,643,004,4,am,Armenia,374,Karabakh Telecom 35 | 283,643,010,271,am,Armenia,374,Orange 36 | 283,643,005,95,am,Armenia,374,Vivacell 37 | 363,867,020,527,aw,Aruba,297,Digicel 38 | 363,867,001,31,aw,Aruba,297,Setar GSM 39 | 505,1285,014,335,au,Australia,61,AAPT Ltd. 40 | 505,1285,024,591,au,Australia,61,Advanced Comm Tech Pty. 41 | 505,1285,009,159,au,Australia,61,Airnet Commercial Australia Ltd. 42 | 505,1285,004,79,au,Australia,61,Department of Defense 43 | 505,1285,026,623,au,Australia,61,Dialogue Communications Pty Ltd 44 | 505,1285,012,303,au,Australia,61,H3G Ltd. 45 | 505,1285,006,111,au,Australia,61,H3G Ltd. 46 | 505,1285,088,2191,au,Australia,61,Localstar Holding Pty. Ltd 47 | 505,1285,019,415,au,Australia,61,Lycamobile Pty Ltd 48 | 505,1285,008,143,au,Australia,61,Railcorp/Vodafone 49 | 505,1285,099,2463,au,Australia,61,Railcorp/Vodafone2 50 | 505,1285,013,319,au,Australia,61,Railcorp/Vodafone3 51 | 505,1285,090,2319,au,Australia,61,Singtel Optus 52 | 505,1285,002,47,au,Australia,61,Singtel Optus2 53 | 505,1285,001,31,au,Australia,61,Telstra Corp. Ltd. 54 | 505,1285,011,287,au,Australia,61,Telstra Corp. Ltd.2 55 | 505,1285,071,1823,au,Australia,61,Telstra Corp. Ltd.3 56 | 505,1285,072,1839,au,Australia,61,Telstra Corp. Ltd.4 57 | 505,1285,005,95,au,Australia,61,The Ozitel Network Pty. 58 | 505,1285,016,367,au,Australia,61,Victorian Rail Track Corp. (VicTrack) 59 | 505,1285,007,127,au,Australia,61,Vodafone 60 | 505,1285,003,63,au,Australia,61,Vodafone2 61 | 232,562,002,47,at,Austria,43,A1 MobilKom 62 | 232,562,011,287,at,Austria,43,A1 MobilKom2 63 | 232,562,009,159,at,Austria,43,A1 MobilKom3 64 | 232,562,001,31,at,Austria,43,A1 MobilKom4 65 | 232,562,015,351,at,Austria,43,T-Mobile/Telering 66 | 232,562,000,15,at,Austria,43,Fix Line 67 | 232,562,010,271,at,Austria,43,H3G 68 | 232,562,014,335,at,Austria,43,H3G2 69 | 232,562,012,303,at,Austria,43,Orange/One Connect 70 | 232,562,006,111,at,Austria,43,Orange/One Connect2 71 | 232,562,005,95,at,Austria,43,Orange/One Connect 72 | 232,562,004,79,at,Austria,43,T-Mobile/Telering 73 | 232,562,003,63,at,Austria,43,T-Mobile/Telering2 74 | 232,562,007,127,at,Austria,43,T-Mobile/Telering3 75 | 232,562,008,143,at,Austria,43,Telefonica 76 | 400,1024,001,31,az,Azerbaijan,994,Azercell Telekom B.M. 77 | 400,1024,004,79,az,Azerbaijan,994,Azerfon. 78 | 400,1024,003,63,az,Azerbaijan,994,Caspian American Telecommunications LLC (CATEL) 79 | 400,1024,002,47,az,Azerbaijan,994,J.V. Bakcell GSM 2000 80 | 364,868,030,783,bs,Bahamas,1242,Bahamas Telco. Comp. 81 | 364,868,390,912,bs,Bahamas,1242,Bahamas Telco. Comp.2 82 | 364,868,039,927,bs,Bahamas,1242,Bahamas Telco. Comp.3 83 | 364,868,003,3,bs,Bahamas,1242,Smart Communications 84 | 426,1062,001,31,bh,Bahrain,973,Batelco 85 | 426,1062,002,47,bh,Bahrain,973,MTC Vodafone 86 | 426,1062,004,79,bh,Bahrain,973,VIVA 87 | 470,1136,002,47,bd,Bangladesh,880,Robi/Aktel 88 | 470,1136,005,95,bd,Bangladesh,880,Citycell 89 | 470,1136,006,111,bd,Bangladesh,880,Citycell2 90 | 470,1136,001,31,bd,Bangladesh,880,GrameenPhone 91 | 470,1136,003,63,bd,Bangladesh,880,Orascom 92 | 470,1136,004,79,bd,Bangladesh,880,TeleTalk 93 | 470,1136,007,127,bd,Bangladesh,880,Airtel/Warid 94 | 342,834,600,1536,bb,Barbados,1246,C & W BET Ltd. 95 | 342,834,810,2064,bb,Barbados,1246,Cingular Wireless 96 | 342,834,750,1872,bb,Barbados,1246,Digicel 97 | 342,834,050,80,bb,Barbados,1246,Digicel2 98 | 342,834,820,2080,bb,Barbados,1246,Sunbeach 99 | 257,599,003,63,by,Belarus,375,BelCel JV 100 | 257,599,004,79,by,Belarus,375,BeST 101 | 257,599,001,31,by,Belarus,375,Mobile Digital Communications 102 | 257,599,002,47,by,Belarus,375,MTS 103 | 206,518,020,527,be,Belgium,32,Base/KPN 104 | 206,518,001,31,be,Belgium,32,Belgacom/Proximus 105 | 206,518,010,271,be,Belgium,32,Mobistar/Orange 106 | 206,518,002,47,be,Belgium,32,SNCT/NMBS 107 | 206,518,005,95,be,Belgium,32,Telenet BidCo NV 108 | 702,1794,067,1663,bz,Belize,501,DigiCell 109 | 702,1794,068,1679,bz,Belize,501,International Telco (INTELCO) 110 | 616,1558,004,79,bj,Benin,229,Bell Benin/BBCOM 111 | 616,1558,002,47,bj,Benin,229,Etisalat/MOOV 112 | 616,1558,005,5,bj,Benin,229,GloMobile 113 | 616,1558,001,31,bj,Benin,229,Libercom 114 | 616,1558,003,63,bj,Benin,229,MTN/Spacetel 115 | 350,848,000,0,bm,Bermuda,1441,Bermuda Digital Communications Ltd (BDC) 116 | 350,848,099,2463,bm,Bermuda,1441,CellOne Ltd 117 | 350,848,010,271,bm,Bermuda,1441,DigiCel / Cingular 118 | 350,848,002,47,bm,Bermuda,1441,M3 Wireless Ltd 119 | 350,848,001,31,bm,Bermuda,1441,Telecommunications (Bermuda & West Indies) Ltd (Digicel Bermuda) 120 | 402,1026,011,287,bt,Bhutan,975,B-Mobile 121 | 402,1026,017,383,bt,Bhutan,975,Bhutan Telecom Ltd (BTL) 122 | 402,1026,077,1919,bt,Bhutan,975,TashiCell 123 | 736,1846,002,47,bo,Bolivia,591,Entel Pcs 124 | 736,1846,001,31,bo,Bolivia,591,Nuevatel 125 | 736,1846,003,63,bo,Bolivia,591,TELECEL BOLIVIA 126 | 362,866,091,2335,bq,Bonaire Sint Eustatius and Saba,,United Telecommunications Services NV (UTS) 127 | 218,536,090,2319,ba,Bosnia & Herzegov.,387,BH Mobile 128 | 218,536,003,63,ba,Bosnia & Herzegov.,387,Eronet Mobile 129 | 218,536,005,95,ba,Bosnia & Herzegov.,387,M-Tel 130 | 652,1618,004,79,bw,Botswana,267,beMOBILE 131 | 652,1618,001,31,bw,Botswana,267,Mascom Wireless (Pty) Ltd. 132 | 652,1618,002,47,bw,Botswana,267,Orange 133 | 724,1828,012,303,br,Brazil,55,Claro/Albra/America Movil 134 | 724,1828,038,911,br,Brazil,55,Claro/Albra/America Movil2 135 | 724,1828,005,95,br,Brazil,55,Claro/Albra/America Movil3 136 | 724,1828,001,1,br,Brazil,55,Vivo S.A./Telemig 137 | 724,1828,033,831,br,Brazil,55,CTBC Celular SA (CTBC) 138 | 724,1828,032,815,br,Brazil,55,CTBC Celular SA (CTBC)2 139 | 724,1828,034,847,br,Brazil,55,CTBC Celular SA (CTBC)3 140 | 724,1828,008,8,br,Brazil,55,TIM 141 | 724,1828,000,15,br,Brazil,55,Nextel (Telet) 142 | 724,1828,039,927,br,Brazil,55,Nextel (Telet)2 143 | 724,1828,030,783,br,Brazil,55,Oi (TNL PCS / Oi) 144 | 724,1828,031,799,br,Brazil,55,Oi (TNL PCS / Oi)2 145 | 724,1828,024,591,br,Brazil,55,Amazonia Celular S/A 146 | 724,1828,016,367,br,Brazil,55,Brazil Telcom 147 | 724,1828,015,351,br,Brazil,55,Sercontel Cel 148 | 724,1828,07,7,br,Brazil,55,CTBC/Triangulo 149 | 724,1828,019,415,br,Brazil,55,Vivo S.A./Telemig 150 | 724,1828,003,63,br,Brazil,55,TIM 151 | 724,1828,002,47,br,Brazil,55,TIM2 152 | 724,1828,004,79,br,Brazil,55,TIM3 153 | 724,1828,037,895,br,Brazil,55,Unicel do Brasil Telecomunicacoes Ltda 154 | 724,1828,006,111,br,Brazil,55,Vivo S.A./Telemig 155 | 724,1828,023,575,br,Brazil,55,Vivo S.A./Telemig2 156 | 724,1828,011,287,br,Brazil,55,Vivo S.A./Telemig3 157 | 724,1828,010,271,br,Brazil,55,Vivo S.A./Telemig4 158 | 348,840,570,1392,vg,British Virgin Islands,284,Caribbean Cellular 159 | 348,840,770,1904,vg,British Virgin Islands,284,Digicel 160 | 348,840,170,368,vg,British Virgin Islands,284,LIME 161 | 528,1320,002,47,bn,Brunei Darussalam,673,b-mobile 162 | 528,1320,011,287,bn,Brunei Darussalam,673,Datastream (DTSCom) 163 | 528,1320,001,31,bn,Brunei Darussalam,673,Telekom Brunei Bhd (TelBru) 164 | 284,644,006,111,bg,Bulgaria,359,BTC Mobile EOOD (vivatel) 165 | 284,644,003,63,bg,Bulgaria,359,BTC Mobile EOOD (vivatel)2 166 | 284,644,005,95,bg,Bulgaria,359,Cosmo Mobile EAD/Globul 167 | 284,644,001,31,bg,Bulgaria,359,MobilTel AD 168 | 613,1555,003,63,bf,Burkina Faso,226,TeleCel 169 | 613,1555,001,31,bf,Burkina Faso,226,TeleMob-OnaTel 170 | 613,1555,002,47,bf,Burkina Faso,226,AirTel/ZAIN/CelTel 171 | 414,1044,001,31,mm,Burma/Myanmar,95,Myanmar Post & Teleco. 172 | 642,1602,002,47,bi,Burundi,257,Africel / Safaris 173 | 642,1602,008,143,bi,Burundi,257,HiTs Telecom 174 | 642,1602,003,63,bi,Burundi,257,Onatel / Telecel 175 | 642,1602,007,127,bi,Burundi,257,Smart Mobile / LACELL 176 | 642,1602,001,31,bi,Burundi,257,Spacetel / Econet 177 | 642,1602,082,2095,bi,Burundi,257,U-COM 178 | 456,1110,004,79,kh,Cambodia,855,Cambodia Advance Communications Co. Ltd (CADCOMMS) 179 | 456,1110,002,47,kh,Cambodia,855,Hello/Malaysia Telcom 180 | 456,1110,008,143,kh,Cambodia,855,Metfone 181 | 456,1110,018,399,kh,Cambodia,855,MFone/Camshin 182 | 456,1110,001,31,kh,Cambodia,855,Mobitel/Cam GSM 183 | 456,1110,003,63,kh,Cambodia,855,QB/Cambodia Adv. Comms. 184 | 456,1110,005,95,kh,Cambodia,855,Smart Mobile 185 | 456,1110,006,111,kh,Cambodia,855,Smart Mobile2 186 | 456,1110,009,159,kh,Cambodia,855,Sotelco Ltd (Beeline Cambodia) 187 | 624,1572,001,31,cm,Cameroon,237,MTN 188 | 624,1572,002,47,cm,Cameroon,237,Orange 189 | 302,770,652,1618,ca,Canada,1,BC Tel Mobility 190 | 302,770,630,1584,ca,Canada,1,Bell Aliant 191 | 302,770,651,1617,ca,Canada,1,Bell Mobility 192 | 302,770,610,1552,ca,Canada,1,Bell Mobility2 193 | 302,770,670,1648,ca,Canada,1,CityWest Mobility 194 | 302,770,360,864,ca,Canada,1,Clearnet 195 | 302,770,361,865,ca,Canada,1,Clearnet2 196 | 302,770,380,896,ca,Canada,1,DMTS Mobility 197 | 302,770,710,1808,ca,Canada,1,Globalstar Canada 198 | 302,770,640,1600,ca,Canada,1,Latitude Wireless 199 | 302,770,370,880,ca,Canada,1,FIDO (Rogers AT&T/ Microcell) 200 | 302,770,320,800,ca,Canada,1,mobilicity 201 | 302,770,702,1794,ca,Canada,1,MT&T Mobility 202 | 302,770,655,1621,ca,Canada,1,MTS Mobility 203 | 302,770,660,1632,ca,Canada,1,MTS Mobility2 204 | 302,770,701,1793,ca,Canada,1,NB Tel Mobility 205 | 302,770,703,1795,ca,Canada,1,New Tel Mobility 206 | 302,770,760,1888,ca,Canada,1,Public Mobile 207 | 302,770,657,1623,ca,Canada,1,Quebectel Mobility 208 | 302,770,720,1824,ca,Canada,1,Rogers AT&T Wireless 209 | 302,770,654,1620,ca,Canada,1,Sask Tel Mobility 210 | 302,770,680,1664,ca,Canada,1,Sask Tel Mobility2 211 | 302,770,656,1622,ca,Canada,1,Tbay Mobility 212 | 302,770,220,544,ca,Canada,1,Telus Mobility 213 | 302,770,653,1619,ca,Canada,1,Telus Mobility2 214 | 302,770,500,1280,ca,Canada,1,Videotron 215 | 302,770,490,1168,ca,Canada,1,WIND 216 | 625,1573,001,31,cv,Cape Verde,238,CV Movel 217 | 625,1573,002,47,cv,Cape Verde,238,T+ Telecom 218 | 346,838,050,80,ky,Cayman Islands,1345,Digicel Cayman Ltd 219 | 346,838,006,6,ky,Cayman Islands,1345,Digicel Ltd. 220 | 346,838,140,320,ky,Cayman Islands,1345,LIME / Cable & Wirel. 221 | 623,1571,001,31,cf,Central African Rep.,236,Centrafr. Telecom+ 222 | 623,1571,004,79,cf,Central African Rep.,236,Nationlink 223 | 623,1571,003,63,cf,Central African Rep.,236,Orange/Celca 224 | 623,1571,002,47,cf,Central African Rep.,236,Telecel Centraf. 225 | 622,1570,004,79,td,Chad,235,Salam/Sotel 226 | 622,1570,002,47,td,Chad,235,Tchad Mobile 227 | 622,1570,003,63,td,Chad,235,Tigo/Milicom/Tchad Mobile 228 | 622,1570,001,31,td,Chad,235,Zain/Airtel/Celtel 229 | 730,1840,006,111,cl,Chile,56,Blue Two Chile SA 230 | 730,1840,011,287,cl,Chile,56,Celupago SA 231 | 730,1840,015,351,cl,Chile,56,Cibeles Telecom SA 232 | 730,1840,003,63,cl,Chile,56,Claro 233 | 730,1840,010,271,cl,Chile,56,Entel PCS 234 | 730,1840,001,1,cl,Chile,56,Entel Telefonia Mov 235 | 730,1840,014,335,cl,Chile,56,Netline Telefonica Movil Ltda 236 | 730,1840,009,159,cl,Chile,56,Nextel SA 237 | 730,1840,005,95,cl,Chile,56,Nextel SA2 238 | 730,1840,004,79,cl,Chile,56,Nextel SA3 239 | 730,1840,002,47,cl,Chile,56,TELEFONICA 240 | 730,1840,007,127,cl,Chile,56,TELEFONICA2 241 | 730,1840,012,303,cl,Chile,56,Telestar Movil SA 242 | 730,1840,000,15,cl,Chile,56,TESAM SA 243 | 730,1840,013,319,cl,Chile,56,Tribe Mobile SPA 244 | 730,1840,008,143,cl,Chile,56,VTR Banda Ancha SA 245 | 460,1120,000,15,cn,China,86,China Mobile GSM 246 | 460,1120,007,127,cn,China,86,China Mobile GSM2 247 | 460,1120,002,47,cn,China,86,China Mobile GSM3 248 | 460,1120,004,79,cn,China,86,China Space Mobile Satellite Telecommunications Co. Ltd (China Spacecom) 249 | 460,1120,005,5,cn,China,86,China Telecom 250 | 460,1120,003,63,cn,China,86,China Telecom2 251 | 460,1120,006,6,cn,China,86,China Unicom 252 | 460,1120,001,31,cn,China,86,China Unicom2 253 | 732,1842,130,304,co,Colombia,57,Avantel SAS 254 | 732,1842,102,258,co,Colombia,57,Movistar 255 | 732,1842,103,259,co,Colombia,57,TIGO/Colombia Movil 256 | 732,1842,001,1,co,Colombia,57,TIGO/Colombia Movil 257 | 732,1842,101,257,co,Colombia,57,Comcel S.A. Occel S.A./Celcaribe 258 | 732,1842,002,2,co,Colombia,57,Edatel S.A. 259 | 732,1842,123,291,co,Colombia,57,Movistar 260 | 732,1842,111,273,co,Colombia,57,TIGO/Colombia Movil 261 | 732,1842,142,322,co,Colombia,57,UNE EPM Telecomunicaciones SA ESP 262 | 732,1842,020,32,co,Colombia,57,UNE EPM Telecomunicaciones SA ESP2 263 | 732,1842,154,340,co,Colombia,57,Virgin Mobile Colombia SAS 264 | 654,1620,001,31,km,Comoros,269,HURI - SNPT 265 | 630,1584,086,2159,cd,Congo Dem. Rep.,243,Orange RDC sarl 266 | 630,1584,005,95,cd,Congo Dem. Rep.,243,SuperCell 267 | 630,1584,089,2207,cd,Congo Dem. Rep.,243,TIGO/Oasis 268 | 630,1584,001,31,cd,Congo Dem. Rep.,243,Vodacom 269 | 630,1584,088,2191,cd,Congo Dem. Rep.,243,Yozma Timeturns sprl (YTT) 270 | 630,1584,002,47,cd,Congo Dem. Rep.,243,ZAIN CelTel 271 | 629,1577,001,31,cg,Congo Republic,242,Airtel Congo SA 272 | 629,1577,002,2,cg,Congo Republic,242,Zain/Celtel 273 | 629,1577,010,271,cg,Congo Republic,242,MTN/Libertis 274 | 629,1577,007,127,cg,Congo Republic,242,Warid 275 | 548,1352,001,31,ck,Cook Islands,682,Telecom Cook Islands 276 | 712,1810,003,63,cr,Costa Rica,506,Claro 277 | 712,1810,002,47,cr,Costa Rica,506,ICE 278 | 712,1810,001,31,cr,Costa Rica,506,ICE2 279 | 712,1810,004,79,cr,Costa Rica,506,Movistar 280 | 219,537,001,31,hr,Croatia,385,T-Mobile/Cronet 281 | 219,537,002,47,hr,Croatia,385,Tele2 282 | 219,537,010,271,hr,Croatia,385,VIPnet d.o.o. 283 | 368,872,001,31,cu,Cuba,53,C-COM 284 | 362,866,095,2399,cw,Curacao,,EOCG Wireless NV 285 | 362,866,069,1695,cw,Curacao,,Polycom N.V./ Curacao Telecom d.b.a. Digicel 286 | 280,640,010,271,cy,Cyprus,357,MTN/Areeba 287 | 280,640,020,527,cy,Cyprus,357,PrimeTel PLC 288 | 280,640,001,31,cy,Cyprus,357,Vodafone/CyTa 289 | 230,560,008,143,cz,Czech Rep.,420,Compatel s.r.o. 290 | 230,560,002,47,cz,Czech Rep.,420,O2 291 | 230,560,001,31,cz,Czech Rep.,420,T-Mobile / RadioMobil 292 | 230,560,005,95,cz,Czech Rep.,420,Travel Telekommunikation s.r.o. 293 | 230,560,004,79,cz,Czech Rep.,420,Ufone 294 | 230,560,099,2463,cz,Czech Rep.,420,Vodafone 295 | 230,560,003,63,cz,Czech Rep.,420,Vodafone 296 | 238,568,005,5,dk,Denmark,45,ApS KBUS 297 | 238,568,023,575,dk,Denmark,45,Banedanmark 298 | 238,568,028,655,dk,Denmark,45,CoolTEL ApS 299 | 238,568,006,111,dk,Denmark,45,Hi3G 300 | 238,568,012,303,dk,Denmark,45,Lycamobile Ltd 301 | 238,568,003,63,dk,Denmark,45,Mach Connectivity ApS 302 | 238,568,007,127,dk,Denmark,45, 303 | 238,568,004,79,dk,Denmark,45,NextGen Mobile Ltd (CardBoardFish) 304 | 238,568,010,271,dk,Denmark,45,TDC Denmark 305 | 238,568,001,31,dk,Denmark,45,TDC Denmark2 306 | 238,568,002,47,dk,Denmark,45,Telenor/Sonofon 307 | 238,568,077,1919,dk,Denmark,45,Telenor/Sonofon 308 | 238,568,020,527,dk,Denmark,45,Telia 309 | 238,568,030,783,dk,Denmark,45,Telia2 310 | 638,1592,001,31,dj,Djibouti,253,Djibouti Telecom SA (Evatis) 311 | 366,870,110,272,dm,Dominica,1767,C & W 312 | 366,870,020,32,dm,Dominica,1767,Cingular Wireless/Digicel 313 | 366,870,050,80,dm,Dominica,1767,Wireless Ventures (Dominica) Ltd (Digicel Dominica) 314 | 370,880,002,47,do,Dominican Republic,1809,Claro 315 | 370,880,001,31,do,Dominican Republic,1809,Orange 316 | 370,880,003,63,do,Dominican Republic,1809,TRIcom 317 | 370,880,004,79,do,Dominican Republic,1809,Trilogy Dominicana S. A. 318 | 740,1856,002,47,ec,Ecuador,593,Alegro/Telcsa 319 | 740,1856,000,15,ec,Ecuador,593,MOVISTAR/OteCel 320 | 740,1856,001,31,ec,Ecuador,593,Porta/Conecel 321 | 602,1538,001,31,eg,Egypt,20,EMS - Mobinil 322 | 602,1538,003,63,eg,Egypt,20,ETISALAT 323 | 602,1538,002,47,eg,Egypt,20,Vodafone (Misrfone Telecom) 324 | 706,1798,001,31,sv,El Salvador,503,CLARO/CTE 325 | 706,1798,002,47,sv,El Salvador,503,Digicel 326 | 706,1798,005,95,sv,El Salvador,503,INTELFON SA de CV 327 | 706,1798,004,79,sv,El Salvador,503,Telefonica 328 | 706,1798,003,63,sv,El Salvador,503,Telemovil 329 | 627,1575,003,63,gq,Equatorial Guinea,240,HiTs-GE 330 | 627,1575,001,31,gq,Equatorial Guinea,240,ORANGE/GETESA 331 | 657,1623,000,0,er,Eritrea,291,EriTel 332 | 657,1623,001,31,er,Eritrea,291,Eritel 333 | 248,584,001,31,ee,Estonia,372,EMT GSM 334 | 248,584,002,47,ee,Estonia,372,Radiolinja Eesti 335 | 248,584,003,63,ee,Estonia,372,Tele2 Eesti AS 336 | 248,584,004,79,ee,Estonia,372,Top Connect OU 337 | 636,1590,001,31,et,Ethiopia,251,ETH/MTN 338 | 750,1872,001,1,fk,Falkland Islands (Malvinas),,Cable and Wireless South Atlantic Ltd (Falkland Islands 339 | 288,648,003,63,fo,Faroe Islands,298,Edge Mobile Sp/F 340 | 288,648,001,31,fo,Faroe Islands,298,Faroese Telecom 341 | 288,648,002,47,fo,Faroe Islands,298,Kall GSM 342 | 542,1346,002,47,fj,Fiji,679,DigiCell 343 | 542,1346,001,31,fj,Fiji,679,Vodafone 344 | 244,580,014,335,fi,Finland,358,Alands 345 | 244,580,026,623,fi,Finland,358,Compatel Ltd 346 | 244,580,013,319,fi,Finland,358,DNA/Finnet 347 | 244,580,012,303,fi,Finland,358,DNA/Finnet2 348 | 244,580,004,79,fi,Finland,358,DNA/Finnet 349 | 244,580,003,63,fi,Finland,358,DNA/Finnet2 350 | 244,580,021,543,fi,Finland,358,Elisa/Saunalahti 351 | 244,580,005,95,fi,Finland,358,Elisa/Saunalahti2 352 | 244,580,082,2095,fi,Finland,358,ID-Mobile 353 | 244,580,011,287,fi,Finland,358,Mundio Mobile (Finland) Ltd 354 | 244,580,009,159,fi,Finland,358,Nokia Oyj 355 | 244,580,010,271,fi,Finland,358,TDC Oy Finland 356 | 244,580,091,2335,fi,Finland,358,TeliaSonera 357 | 208,520,027,639,fr,France,33,AFONE SA 358 | 208,520,092,2351,fr,France,33,Association Plate-forme Telecom 359 | 208,520,028,655,fr,France,33,Astrium 360 | 208,520,088,2191,fr,France,33,Bouygues Telecom 361 | 208,520,021,543,fr,France,33,Bouygues Telecom2 362 | 208,520,020,527,fr,France,33,Bouygues Telecom3 363 | 208,520,014,335,fr,France,33,Lliad/FREE Mobile 364 | 208,520,005,95,fr,France,33,GlobalStar 365 | 208,520,007,127,fr,France,33,GlobalStar2 366 | 208,520,006,111,fr,France,33,GlobalStar3 367 | 208,520,029,671,fr,France,33,Orange 368 | 208,520,016,367,fr,France,33,Lliad/FREE Mobile 369 | 208,520,015,351,fr,France,33,Lliad/FREE Mobile2 370 | 208,520,025,607,fr,France,33,Lycamobile SARL 371 | 208,520,024,591,fr,France,33,MobiquiThings 372 | 208,520,003,63,fr,France,33,MobiquiThings2 373 | 208,520,031,799,fr,France,33,Mundio Mobile (France) Ltd 374 | 208,520,026,623,fr,France,33,NRJ 375 | 208,520,089,2207,fr,France,33,Omer/Virgin Mobile 376 | 208,520,023,575,fr,France,33,Omer/Virgin Mobile2 377 | 208,520,002,47,fr,France,33,Orange 378 | 208,520,001,31,fr,France,33,Orange2 379 | 208,520,091,2335,fr,France,33,Orange3 380 | 208,520,013,319,fr,France,33,S.F.R. 381 | 208,520,011,287,fr,France,33,S.F.R.2 382 | 208,520,010,271,fr,France,33,S.F.R.3 383 | 208,520,009,159,fr,France,33,S.F.R.4 384 | 208,520,004,79,fr,France,33,SISTEER 385 | 208,520,000,15,fr,France,33,Tel/Tel 386 | 208,520,022,559,fr,France,33,Transatel SA 387 | 340,832,020,527,gf,French Guiana,594,Bouygues/DigiCel 388 | 340,832,008,143,gf,French Guiana,594,AMIGO/Dauphin 389 | 340,832,001,31,gf,French Guiana,594,Orange Caribe 390 | 340,832,002,47,gf,French Guiana,594,Outremer Telecom 391 | 340,832,011,287,gf,French Guiana,594,TelCell GSM 392 | 340,832,003,63,gf,French Guiana,594,TelCell GSM2 393 | 547,1351,015,351,pf,French Polynesia,689,Pacific Mobile Telecom (PMT) 394 | 547,1351,020,527,pf,French Polynesia,689,Tikiphone 395 | 628,1576,004,79,ga,Gabon,241,Azur/Usan S.A. 396 | 628,1576,001,31,ga,Gabon,241,Libertis S.A. 397 | 628,1576,002,47,ga,Gabon,241,MOOV/Telecel 398 | 628,1576,003,63,ga,Gabon,241,ZAIN/Celtel Gabon S.A. 399 | 607,1543,002,47,gm,Gambia,220,Africel 400 | 607,1543,003,63,gm,Gambia,220,Comium 401 | 607,1543,001,31,gm,Gambia,220,Gamcel 402 | 607,1543,004,79,gm,Gambia,220,Q-Cell 403 | 282,642,001,31,ge,Georgia,995,Geocell Ltd. 404 | 282,642,003,3,ge,Georgia,995,Iberiatel Ltd. 405 | 282,642,002,47,ge,Georgia,995,Magti GSM Ltd. 406 | 282,642,004,79,ge,Georgia,995,MobiTel/Beeline 407 | 282,642,000,0,ge,Georgia,995,Silknet 408 | 262,610,017,383,de,Germany,49,E-Plus 409 | 262,610,003,63,de,Germany,49,E-Plus2 410 | 262,610,005,95,de,Germany,49,E-Plus3 411 | 262,610,077,1919,de,Germany,49,E-Plus4 412 | 262,610,014,335,de,Germany,49,Group 3G UMTS 413 | 262,610,043,1087,de,Germany,49,Lycamobile 414 | 262,610,013,319,de,Germany,49,Mobilcom 415 | 262,610,007,127,de,Germany,49,O2 416 | 262,610,011,287,de,Germany,49,O2-2 417 | 262,610,008,143,de,Germany,49,O2-3 418 | 262,610,010,271,de,Germany,49,O2-4 419 | 262,610,012,303,de,Germany,49,O2-5 420 | 262,610,006,111,de,Germany,49,Telekom/T-mobile 421 | 262,610,001,31,de,Germany,49,Telekom/T-mobile2 422 | 262,610,016,367,de,Germany,49,Telogic/ViStream 423 | 262,610,004,79,de,Germany,49,Vodafone D2 424 | 262,610,002,47,de,Germany,49,Vodafone D2-2 425 | 262,610,009,159,de,Germany,49,Vodafone D2-3 426 | 620,1568,004,79,gh,Ghana,233,Expresso Ghana Ltd 427 | 620,1568,007,127,gh,Ghana,233,GloMobile 428 | 620,1568,003,63,gh,Ghana,233,Milicom/Tigo 429 | 620,1568,001,31,gh,Ghana,233,MTN 430 | 620,1568,002,47,gh,Ghana,233,Vodafone 431 | 620,1568,006,111,gh,Ghana,233,ZAIN 432 | 266,614,006,111,gi,Gibraltar,350,CTS Mobile 433 | 266,614,009,159,gi,Gibraltar,350,eazi telecom 434 | 266,614,001,31,gi,Gibraltar,350,Gibtel GSM 435 | 202,514,007,127,gr,Greece,30,AMD Telecom SA 436 | 202,514,002,47,gr,Greece,30,Cosmote 437 | 202,514,001,31,gr,Greece,30,Cosmote2 438 | 202,514,004,79,gr,Greece,30,Organismos Sidirodromon Ellados (OSE) 439 | 202,514,003,63,gr,Greece,30,OTE Hellenic Telecommunications Organization SA 440 | 202,514,010,271,gr,Greece,30,Tim/Wind 441 | 202,514,009,159,gr,Greece,30,Tim/Wind2 442 | 202,514,005,95,gr,Greece,30,Vodafone 443 | 290,656,001,31,gl,Greenland,299,Tele Greenland 444 | 352,850,110,272,gd,Grenada,1473,Cable & Wireless 445 | 352,850,030,48,gd,Grenada,1473,Digicel 446 | 352,850,050,80,gd,Grenada,1473,Digicel2 447 | 340,832,008,143,gp,Guadeloupe,590,Dauphin Telecom SU (Guadeloupe Telecom) (Guadeloupe) 448 | 340,832,020,527,gp,Guadeloupe,590,Digicel Antilles Francaises Guyane SA (Guadeloupe) 449 | 340,832,001,31,gp,Guadeloupe,590,Orange Caribe 450 | 340,832,002,47,gp,Guadeloupe,590,Outremer Telecom Guadeloupe (only) (Guadeloupe) 451 | 340,832,010,271,gp,Guadeloupe,590,United Telecommunications Services Caraibe SARL (UTS Caraibe Guadeloupe Telephone Mobile) (Guadeloupe) 452 | 340,832,003,63,gp,Guadeloupe,590,United Telecommunications Services Caraibe SARL (UTS Caraibe Guadeloupe Telephone Mobile) (Guadeloupe)2 453 | 310,784,480,1152,gu,Guam,1671,Choice Phone LLC 454 | 310,784,370,880,gu,Guam,1671,Docomo 455 | 310,784,470,1136,gu,Guam,1671,Docomo2 456 | 310,784,140,320,gu,Guam,1671,GTA Wireless 457 | 310,784,033,51,gu,Guam,1671,Guam Teleph. Auth. 458 | 310,784,032,50,gu,Guam,1671,IT&E OverSeas 459 | 311,785,250,592,gu,Guam,1671,Wave Runner LLC 460 | 704,1796,001,31,gt,Guatemala,502,SERCOM 461 | 704,1796,003,63,gt,Guatemala,502,Telefonica 462 | 704,1796,002,47,gt,Guatemala,502,TIGO/COMCEL 463 | 611,1553,004,4,gn,Guinea,224,Areeba - MTN 464 | 611,1553,005,95,gn,Guinea,224,Celcom 465 | 611,1553,003,63,gn,Guinea,224,Intercel 466 | 611,1553,001,31,gn,Guinea,224,Orange/Spacetel 467 | 611,1553,002,47,gn,Guinea,224,SotelGui 468 | 632,1586,000,0,gw,Guinea-Bissau,245,GuineTel 469 | 632,1586,001,31,gw,Guinea-Bissau,245,GuineTel2 470 | 632,1586,003,63,gw,Guinea-Bissau,245,Orange 471 | 632,1586,002,47,gw,Guinea-Bissau,245,SpaceTel 472 | 738,1848,002,47,gy,Guyana,592,Cellink Plus 473 | 738,1848,001,31,gy,Guyana,592,DigiCel 474 | 372,882,001,31,ht,Haiti,509,Comcel 475 | 372,882,002,47,ht,Haiti,509,Digicel 476 | 372,882,003,63,ht,Haiti,509,National Telecom SA (NatCom) 477 | 708,1800,040,64,hn,Honduras,504,Digicel 478 | 708,1800,030,48,hn,Honduras,504,HonduTel 479 | 708,1800,001,1,hn,Honduras,504,SERCOM/CLARO 480 | 708,1800,002,2,hn,Honduras,504,Telefonica/CELTEL 481 | 454,1108,013,319,hk,Hongkong China,852,China Mobile/Peoples 482 | 454,1108,012,303,hk,Hongkong China,852,China Mobile/Peoples2 483 | 454,1108,009,159,hk,Hongkong China,852,China Motion 484 | 454,1108,007,127,hk,Hongkong China,852,China Unicom Ltd 485 | 454,1108,011,287,hk,Hongkong China,852,China-HongKong Telecom Ltd (CHKTL) 486 | 454,1108,001,31,hk,Hongkong China,852,Citic Telecom Ltd. 487 | 454,1108,018,399,hk,Hongkong China,852,CSL Ltd. 488 | 454,1108,002,47,hk,Hongkong China,852,CSL Ltd.2 489 | 454,1108,000,15,hk,Hongkong China,852,CSL Ltd.3 490 | 454,1108,010,271,hk,Hongkong China,852,CSL/New World PCS Ltd. 491 | 454,1108,014,335,hk,Hongkong China,852,H3G/Hutchinson 492 | 454,1108,005,95,hk,Hongkong China,852,H3G/Hutchinson2 493 | 454,1108,004,79,hk,Hongkong China,852,H3G/Hutchinson3 494 | 454,1108,003,63,hk,Hongkong China,852,H3G/Hutchinson4 495 | 454,1108,016,367,hk,Hongkong China,852,HKT/PCCW 496 | 454,1108,019,415,hk,Hongkong China,852,HKT/PCCW2 497 | 454,1108,020,527,hk,Hongkong China,852,HKT/PCCW3 498 | 454,1108,029,671,hk,Hongkong China,852,HKT/PCCW4 499 | 454,1108,047,1151,hk,Hongkong China,852,shared by private TETRA systems 500 | 454,1108,040,1039,hk,Hongkong China,852,shared by private TETRA systems2 501 | 454,1108,008,143,hk,Hongkong China,852,Trident Telecom Ventures Ltd. 502 | 454,1108,017,383,hk,Hongkong China,852,Vodafone/SmarTone 503 | 454,1108,015,351,hk,Hongkong China,852,Vodafone/SmarTone2 504 | 454,1108,006,111,hk,Hongkong China,852,Vodafone/SmarTone3 505 | 216,534,001,31,hu,Hungary,36,Pannon/Telenor 506 | 216,534,030,783,hu,Hungary,36,T-mobile/Magyar 507 | 216,534,071,1823,hu,Hungary,36,UPC Magyarorszag Kft. 508 | 216,534,070,1807,hu,Hungary,36,Vodafone 509 | 274,628,009,159,is,Iceland,354,Amitelo 510 | 274,628,007,127,is,Iceland,354,IceCell 511 | 274,628,008,143,is,Iceland,354,Landssiminn 512 | 274,628,001,31,is,Iceland,354,Landssiminn2 513 | 274,628,011,287,is,Iceland,354,NOVA 514 | 274,628,004,79,is,Iceland,354,VIKING/IMC 515 | 274,628,003,63,is,Iceland,354,Vodafone/Tal hf 516 | 274,628,005,95,is,Iceland,354,Vodafone/Tal hf2 517 | 274,628,002,47,is,Iceland,354,Vodafone/Tal hf3 518 | 404,1028,029,671,in,India,91,Aircel 519 | 404,1028,028,655,in,India,91,Aircel2 520 | 404,1028,025,607,in,India,91,Aircel3 521 | 404,1028,017,383,in,India,91,Aircel4 522 | 404,1028,042,1071,in,India,91,Aircel5 523 | 404,1028,033,831,in,India,91,Aircel6 524 | 404,1028,001,1,in,India,91,Aircel Digilink India 525 | 404,1028,015,351,in,India,91,Aircel Digilink India-2 526 | 404,1028,060,1551,in,India,91,Aircel Digilink India-3 527 | 404,1028,049,000,in,India,91,AirTel 528 | 405,1029,055,1375,in,India,91,AirTel2 529 | 405,1029,054,1375,in,India,91,AirTel3 530 | 405,1029,053,1343,in,India,91,AirTel4 531 | 405,1029,051,1311,in,India,91,AirTel5 532 | 405,1029,056,1391,in,India,91,Airtel (Bharati Mobile) - Assam 533 | 404,1028,086,2159,in,India,91,Barakhamba Sales & Serv. 534 | 404,1028,013,319,in,India,91,Vodafone 535 | 404,1028,011,000,in,India,91,Vodafone2 536 | 404,1028,058,1423,in,India,91,BSNL 537 | 404,1028,081,2079,in,India,91,BSNL2 538 | 404,1028,074,1871,in,India,91,BSNL3 539 | 404,1028,038,911,in,India,91,BSNL4 540 | 404,1028,057,1407,in,India,91,BSNL5 541 | 404,1028,080,2063,in,India,91,BSNL6 542 | 404,1028,073,1855,in,India,91,BSNL7 543 | 404,1028,034,847,in,India,91,BSNL8 544 | 404,1028,066,1647,in,India,91,BSNL9 545 | 404,1028,055,1375,in,India,91,BSNL10 546 | 404,1028,072,1839,in,India,91,BSNL11 547 | 404,1028,077,1919,in,India,91,BSNL12 548 | 404,1028,064,1615,in,India,91,BSNL13 549 | 404,1028,054,1359,in,India,91,BSNL14 550 | 404,1028,071,1823,in,India,91,BSNL15 551 | 404,1028,076,1903,in,India,91,BSNL16 552 | 404,1028,053,1343,in,India,91,BSNL17 553 | 404,1028,062,1583,in,India,91,BSNL18 554 | 404,1028,059,1439,in,India,91,BSNL19 555 | 404,1028,075,1887,in,India,91,BSNL20 556 | 404,1028,051,1311,in,India,91,BSNL21 557 | 405,1028,001,000,in,INDIA,91,Reliance 558 | 405,1028,025,000,in,India,91,TATA DOCOMO 559 | 405,1028,036,000,in,India,91,TATA DOCOMO2 560 | 405,1029,010,271,in,India,91,Bharti Airtel Limited (Delhi) 561 | 404,1028,079,1951,in,India,91,CellOne A&N 562 | 404,1028,089,2207,in,India,91,Escorts Telecom Ltd. 563 | 404,1028,088,2191,in,India,91,Escorts Telecom Ltd.2 564 | 404,1028,087,2175,in,India,91,Escorts Telecom Ltd.3 565 | 404,1028,082,2095,in,India,91,Escorts Telecom Ltd.4 566 | 404,1028,012,303,in,India,91,Escotel Mobile Communications 567 | 404,1028,019,415,in,India,91,Escotel Mobile Communications2 568 | 404,1028,056,1391,in,India,91,Escotel Mobile Communications3 569 | 405,1029,005,5,in,India,91,Fascel Limited 570 | 404,1028,005,5,in,India,91,Fascel 571 | 404,1028,070,1807,in,India,91,Hexacom India 572 | 404,1028,016,367,in,India,91,Hexcom India2 573 | 404,1028,004,4,in,India,91,Idea Cellular Ltd. 574 | 404,1028,024,591,in,India,91,Idea Cellular Ltd. 575 | 404,1028,022,559,in,India,91,Idea Cellular Ltd.2 576 | 404,1028,078,1935,in,India,91,Idea Cellular Ltd.3 577 | 404,1028,007,7,in,India,91,Idea Cellular Ltd.4 578 | 404,1028,069,1695,in,India,91,Mahanagar Telephone Nigam 579 | 404,1028,068,1679,in,India,91,Mahanagar Telephone Nigam2 580 | 404,1028,083,2111,in,India,91,Reliable Internet Services 581 | 405,1029,009,9,in,India,91,RELIANCE TELECOM 582 | 404,1028,036,879,in,India,91,Reliance Telecom Private 583 | 404,1028,052,1327,in,India,91,Reliance Telecom Private2 584 | 404,1028,050,1295,in,India,91,Reliance Telecom Private3 585 | 404,1028,067,1663,in,India,91,Reliance Telecom Private4 586 | 404,1028,018,399,in,India,91,Reliance Telecom Private5 587 | 404,1028,085,2143,in,India,91,Reliance Telecom Private6 588 | 404,1028,009,9,in,India,91,Reliance Telecom Private7 589 | 404,1028,041,1055,in,India,91,RPG Cellular 590 | 404,1028,014,335,in,India,91,Spice 591 | 404,1028,044,1103,in,India,91,Spice2 592 | 404,1028,011,287,in,India,91,Sterling Cellular Ltd. 593 | 404,1028,030,783,in,India,91,Usha Martin Telecom 594 | 510,1296,008,143,id,Indonesia,62,Axis/Natrindo 595 | 510,1296,089,2207,id,Indonesia,62,H3G CP 596 | 510,1296,021,543,id,Indonesia,62,Indosat/Satelindo/M3 597 | 510,1296,001,31,id,Indonesia,62,Indosat/Satelindo/M3 598 | 510,1296,000,0,id,Indonesia,62,PT Pasifik Satelit Nusantara (PSN) 599 | 510,1296,000,15,id,Indonesia,62,PT Pasifik Satelit Nusantara (PSN)2 600 | 510,1296,027,639,id,Indonesia,62,PT Sampoerna Telekomunikasi Indonesia (STI) 601 | 510,1296,009,159,id,Indonesia,62,PT Smartfren Telecom Tbk 602 | 510,1296,028,655,id,Indonesia,62,PT Smartfren Telecom Tbk2 603 | 510,1296,011,287,id,Indonesia,62,PT. Excelcom 604 | 510,1296,010,271,id,Indonesia,62,Telkomsel 605 | 901,2305,013,319,n/a,International Networks,882,Antarctica 606 | 432,1074,019,415,ir,Iran,98,Mobile Telecommunications Company of Esfahan JV-PJS (MTCE) 607 | 432,1074,070,1807,ir,Iran,98,MTCE 608 | 432,1074,035,863,ir,Iran,98,MTN/IranCell 609 | 432,1074,032,815,ir,Iran,98,Taliya 610 | 432,1074,011,287,ir,Iran,98,TCI / MCI 611 | 432,1074,014,335,ir,Iran,98,TKC/KFZO 612 | 418,1048,005,95,iq,Iraq,964,Asia Cell 613 | 418,1048,092,2351,iq,Iraq,964,Itisaluna and Kalemat 614 | 418,1048,082,2095,iq,Iraq,964,Korek 615 | 418,1048,040,1039,iq,Iraq,964,Korek2 616 | 418,1048,045,1119,iq,Iraq,964,Mobitel (Iraq-Kurdistan) and Moutiny 617 | 418,1048,030,783,iq,Iraq,964,Orascom Telecom 618 | 418,1048,020,527,iq,Iraq,964,ZAIN/Atheer 619 | 418,1048,008,8,iq,Iraq,964,Sanatel 620 | 272,626,004,79,ie,Ireland,353,Access Telecom Ltd. 621 | 272,626,009,159,ie,Ireland,353,Clever Communications Ltd 622 | 272,626,007,127,ie,Ireland,353,eircom Ltd 623 | 272,626,005,95,ie,Ireland,353,H3G 624 | 272,626,011,287,ie,Ireland,353,Liffey Telecom 625 | 272,626,013,319,ie,Ireland,353,Lycamobile 626 | 272,626,003,63,ie,Ireland,353,Meteor Mobile Ltd. 627 | 272,626,002,47,ie,Ireland,353,O2/Digifone 628 | 272,626,001,31,ie,Ireland,353,Vodafone Eircell 629 | 425,1061,014,335,il,Israel,972,Alon Cellular Ltd 630 | 425,1061,002,47,il,Israel,972,Cellcom ltd. 631 | 425,1061,008,143,il,Israel,972,Golan Telekom 632 | 425,1061,015,351,il,Israel,972,Home Cellular Ltd 633 | 425,1061,077,1919,il,Israel,972,Hot Mobile/Mirs 634 | 425,1061,007,127,il,Israel,972,Hot Mobile/Mirs2 635 | 425,1061,001,31,il,Israel,972,Orange/Partner Co. Ltd. 636 | 425,1061,003,63,il,Israel,972,Pelephone 637 | 425,1061,016,367,il,Israel,972,Rami Levy Hashikma Marketing Communications Ltd 638 | 222,546,034,847,it,Italy,39,BT Italia SpA 639 | 222,546,002,47,it,Italy,39,Elsacom 640 | 222,546,099,2463,it,Italy,39,Hi3G 641 | 222,546,033,831,it,Italy,39,Hi3G-2 642 | 222,546,077,1919,it,Italy,39,IPSE 2000 643 | 222,546,035,863,it,Italy,39,Lycamobile Srl 644 | 222,546,007,127,it,Italy,39,Noverca Italia Srl 645 | 222,546,030,783,it,Italy,39,RFI Rete Ferroviaria Italiana SpA 646 | 222,546,048,1167,it,Italy,39,Telecom Italia Mobile SpA 647 | 222,546,043,1087,it,Italy,39,Telecom Italia Mobile SpA2 648 | 222,546,001,31,it,Italy,39,TIM 649 | 222,546,010,271,it,Italy,39,Vodafone 650 | 222,546,006,111,it,Italy,39,Vodafone 651 | 222,546,044,1103,it,Italy,39,WIND (Blu) 652 | 222,546,088,2191,it,Italy,39,WIND (Blu)2 653 | 612,1554,007,127,ci,Ivory Coast,225,Aircomm SA 654 | 612,1554,002,47,ci,Ivory Coast,225,Atlantik Tel./Moov 655 | 612,1554,004,79,ci,Ivory Coast,225,Comium 656 | 612,1554,001,1,ci,Ivory Coast,225,Comstar 657 | 612,1554,005,95,ci,Ivory Coast,225,MTN 658 | 612,1554,003,63,ci,Ivory Coast,225,Orange 659 | 612,1554,006,111,ci,Ivory Coast,225,OriCell 660 | 612,1554,000,0,ci,Ivory Coast,225,Warid 661 | 338,824,110,272,jm,Jamaica,1876,Cable & Wireless 662 | 338,824,020,32,jm,Jamaica,1876,Cable & Wireless-2 663 | 338,824,180,384,jm,Jamaica,1876,Cable & Wireless-3 664 | 338,824,050,80,jm,Jamaica,1876,DIGICEL/Mossel 665 | 440,1088,000,0,jp,Japan,81,eMobile 666 | 440,1088,074,1871,jp,Japan,81,KDDI Corporation 667 | 440,1088,070,1807,jp,Japan,81,KDDI Corporation2 668 | 440,1088,089,2207,jp,Japan,81,KDDI Corporation3 669 | 440,1088,051,1311,jp,Japan,81,KDDI Corporation4 670 | 440,1088,075,1887,jp,Japan,81,KDDI Corporation5 671 | 440,1088,056,1391,jp,Japan,81,KDDI Corporation6 672 | 441,1089,070,1807,jp,Japan,81,KDDI Corporation7 673 | 440,1088,052,1327,jp,Japan,81,KDDI Corporation8 674 | 440,1088,076,1903,jp,Japan,81,KDDI Corporation9 675 | 440,1088,071,1823,jp,Japan,81,KDDI Corporation10 676 | 440,1088,053,1343,jp,Japan,81,KDDI Corporation11 677 | 440,1088,077,1919,jp,Japan,81,KDDI Corporation12 678 | 440,1088,008,143,jp,Japan,81,KDDI Corporation13 679 | 440,1088,072,1839,jp,Japan,81,KDDI Corporation14 680 | 440,1088,054,1359,jp,Japan,81,KDDI Corporation15 681 | 440,1088,079,1951,jp,Japan,81,KDDI Corporation16 682 | 440,1088,007,127,jp,Japan,81,KDDI Corporation17 683 | 440,1088,073,1855,jp,Japan,81,KDDI Corporation18 684 | 440,1088,055,1375,jp,Japan,81,KDDI Corporation19 685 | 440,1088,088,2191,jp,Japan,81,KDDI Corporation20 686 | 440,1088,050,1295,jp,Japan,81,KDDI Corporation21 687 | 440,1088,021,543,jp,Japan,81,NTT Docomo 688 | 441,1089,044,1103,jp,Japan,81,NTT Docomo2 689 | 440,1088,013,319,jp,Japan,81,NTT Docomo3 690 | 440,1088,023,575,jp,Japan,81,NTT Docomo4 691 | 440,1088,016,367,jp,Japan,81,NTT Docomo5 692 | 441,1089,099,2463,jp,Japan,81,NTT Docomo6 693 | 440,1088,034,847,jp,Japan,81,NTT Docomo7 694 | 440,1088,069,1695,jp,Japan,81,NTT Docomo8 695 | 440,1088,064,1615,jp,Japan,81,NTT Docomo9 696 | 440,1088,037,895,jp,Japan,81,NTT Docomo10 697 | 440,1088,025,607,jp,Japan,81,NTT Docomo11 698 | 440,1088,022,559,jp,Japan,81,NTT Docomo12 699 | 441,1089,043,1087,jp,Japan,81,NTT Docomo13 700 | 440,1088,027,639,jp,Japan,81,NTT Docomo14 701 | 440,1088,002,47,jp,Japan,81,NTT Docomo15 702 | 440,1088,017,383,jp,Japan,81,NTT Docomo16 703 | 440,1088,031,799,jp,Japan,81,NTT Docomo17 704 | 440,1088,087,2175,jp,Japan,81,NTT Docomo18 705 | 440,1088,065,1631,jp,Japan,81,NTT Docomo19 706 | 440,1088,036,879,jp,Japan,81,NTT Docomo20 707 | 441,1089,092,2351,jp,Japan,81,NTT Docomo21 708 | 440,1088,012,303,jp,Japan,81,NTT Docomo22 709 | 440,1088,058,1423,jp,Japan,81,NTT Docomo23 710 | 440,1088,028,655,jp,Japan,81,NTT Docomo24 711 | 440,1088,003,63,jp,Japan,81,NTT Docomo25 712 | 440,1088,018,399,jp,Japan,81,NTT Docomo26 713 | 441,1089,091,2335,jp,Japan,81,NTT Docomo27 714 | 440,1088,032,815,jp,Japan,81,NTT Docomo28 715 | 440,1088,061,1567,jp,Japan,81,NTT Docomo29 716 | 440,1088,066,1647,jp,Japan,81,NTT Docomo30 717 | 440,1088,035,863,jp,Japan,81,NTT Docomo31 718 | 441,1089,093,2367,jp,Japan,81,NTT Docomo32 719 | 441,1089,040,1039,jp,Japan,81,NTT Docomo33 720 | 440,1088,049,1183,jp,Japan,81,NTT Docomo34 721 | 440,1088,029,671,jp,Japan,81,NTT Docomo35 722 | 440,1088,009,159,jp,Japan,81,NTT Docomo36 723 | 440,1088,019,415,jp,Japan,81,NTT Docomo37 724 | 441,1089,090,2319,jp,Japan,81,NTT Docomo38 725 | 440,1088,033,831,jp,Japan,81,NTT Docomo39 726 | 440,1088,060,1551,jp,Japan,81,NTT Docomo40 727 | 440,1088,014,335,jp,Japan,81,NTT Docomo41 728 | 441,1089,094,2383,jp,Japan,81,NTT Docomo42 729 | 441,1089,041,1055,jp,Japan,81,NTT Docomo43 730 | 440,1088,067,1663,jp,Japan,81,NTT Docomo44 731 | 440,1088,062,1583,jp,Japan,81,NTT Docomo45 732 | 440,1088,001,31,jp,Japan,81,NTT Docomo46 733 | 440,1088,039,927,jp,Japan,81,NTT Docomo47 734 | 440,1088,030,783,jp,Japan,81,NTT Docomo48 735 | 440,1088,010,271,jp,Japan,81,NTT Docomo49 736 | 440,1088,020,527,jp,Japan,81,NTT Docomo50 737 | 441,1089,045,1119,jp,Japan,81,NTT Docomo51 738 | 440,1088,024,591,jp,Japan,81,NTT Docomo52 739 | 440,1088,015,351,jp,Japan,81,NTT Docomo53 740 | 441,1089,098,2447,jp,Japan,81,NTT Docomo54 741 | 441,1089,042,1071,jp,Japan,81,NTT Docomo55 742 | 440,1088,068,1679,jp,Japan,81,NTT Docomo56 743 | 440,1088,063,1599,jp,Japan,81,NTT Docomo57 744 | 440,1088,038,911,jp,Japan,81,NTT Docomo58 745 | 440,1088,026,623,jp,Japan,81,NTT Docomo59 746 | 440,1088,011,287,jp,Japan,81,NTT Docomo60 747 | 440,1088,099,2463,jp,Japan,81,NTT Docomo61 748 | 440,1088,078,1935,jp,Japan,81,Okinawa Cellular Telephone 749 | 440,1088,047,1151,jp,Japan,81,SoftBank Mobile Corp 750 | 440,1088,095,2399,jp,Japan,81,SoftBank Mobile Corp2 751 | 440,1088,041,1055,jp,Japan,81,SoftBank Mobile Corp3 752 | 441,1089,064,1615,jp,Japan,81,SoftBank Mobile Corp4 753 | 440,1088,046,1135,jp,Japan,81,SoftBank Mobile Corp5 754 | 440,1088,097,2431,jp,Japan,81,SoftBank Mobile Corp6 755 | 440,1088,042,1071,jp,Japan,81,SoftBank Mobile Corp7 756 | 441,1089,065,1631,jp,Japan,81,SoftBank Mobile Corp8 757 | 440,1088,090,2319,jp,Japan,81,SoftBank Mobile Corp9 758 | 440,1088,092,2351,jp,Japan,81,SoftBank Mobile Corp10 759 | 440,1088,098,2447,jp,Japan,81,SoftBank Mobile Corp11 760 | 440,1088,043,1087,jp,Japan,81,SoftBank Mobile Corp12 761 | 440,1088,048,1167,jp,Japan,81,SoftBank Mobile Corp13 762 | 440,1088,093,2367,jp,Japan,81,SoftBank Mobile Corp14 763 | 440,1088,006,111,jp,Japan,81,SoftBank Mobile Corp15 764 | 441,1089,061,1567,jp,Japan,81,SoftBank Mobile Corp16 765 | 440,1088,044,1103,jp,Japan,81,SoftBank Mobile Corp17 766 | 440,1088,004,79,jp,Japan,81,SoftBank Mobile Corp18 767 | 440,1088,094,2383,jp,Japan,81,SoftBank Mobile Corp19 768 | 441,1089,062,1583,jp,Japan,81,SoftBank Mobile Corp20 769 | 440,1088,045,1119,jp,Japan,81,SoftBank Mobile Corp21 770 | 440,1088,040,1039,jp,Japan,81,SoftBank Mobile Corp22 771 | 440,1088,096,2415,jp,Japan,81,SoftBank Mobile Corp23 772 | 441,1089,063,1599,jp,Japan,81,SoftBank Mobile Corp24 773 | 440,1088,085,2143,jp,Japan,81,KDDI Corporation 774 | 440,1088,083,2111,jp,Japan,81,KDDI Corporation2 775 | 440,1088,081,2079,jp,Japan,81,KDDI Corporation3 776 | 440,1088,080,2063,jp,Japan,81,KDDI Corporation4 777 | 440,1088,086,2159,jp,Japan,81,KDDI Corporation5 778 | 440,1088,084,2127,jp,Japan,81,KDDI Corporation6 779 | 440,1088,082,2095,jp,Japan,81,KDDI Corporation7 780 | 416,1046,077,1919,jo,Jordan,962,Orange/Petra 781 | 416,1046,003,63,jo,Jordan,962,Umniah Mobile Co. 782 | 416,1046,002,2,jo,Jordan,962,Xpress 783 | 416,1046,001,31,jo,Jordan,962,ZAIN /J.M.T.S 784 | 401,1025,001,31,kz,Kazakhstan,7,Beeline/KaR-Tel LLP 785 | 401,1025,007,127,kz,Kazakhstan,7,Dalacom/Altel 786 | 401,1025,002,47,kz,Kazakhstan,7,K-Cell 787 | 401,1025,077,1919,kz,Kazakhstan,7,NEO/MTS 788 | 639,1593,005,95,ke,Kenya,254,Econet Wireless 789 | 639,1593,007,127,ke,Kenya,254,Orange 790 | 639,1593,002,47,ke,Kenya,254,Safaricom Ltd. 791 | 639,1593,003,63,ke,Kenya,254,Zain/Celtel Ltd. 792 | 545,1349,009,9,ki,Kiribati,686,Kiribati Frigate 793 | 467,1127,193,403,kp,Korea N. Dem. People's Rep.,850,Sun Net 794 | 450,1104,002,47,kr,Korea S Republic of,82,KT Freetel Co. Ltd. 795 | 450,1104,004,79,kr,Korea S Republic of,82,KT Freetel Co. Ltd.2 796 | 450,1104,008,143,kr,Korea S Republic of,82,KT Freetel Co. Ltd.3 797 | 450,1104,006,111,kr,Korea S Republic of,82,LG Telecom 798 | 450,1104,003,63,kr,Korea S Republic of,82,SK Telecom 799 | 450,1104,005,95,kr,Korea S Republic of,82,SK Telecom Co. Ltd 800 | 419,1049,004,79,kw,Kuwait,965,Viva 801 | 419,1049,003,63,kw,Kuwait,965,Wantaniya 802 | 419,1049,002,47,kw,Kuwait,965,Zain 803 | 437,1079,003,63,kg,Kyrgyzstan,996,AkTel LLC 804 | 437,1079,001,31,kg,Kyrgyzstan,996,Beeline/Bitel 805 | 437,1079,005,95,kg,Kyrgyzstan,996,MEGACOM 806 | 437,1079,009,159,kg,Kyrgyzstan,996,O!/NUR Telecom 807 | 457,1111,002,47,la,Laos P.D.R.,856,ETL Mobile 808 | 457,1111,001,31,la,Laos P.D.R.,856,Lao Tel 809 | 457,1111,008,143,la,Laos P.D.R.,856,Tigo/Millicom 810 | 457,1111,003,63,la,Laos P.D.R.,856,UNITEL/LAT 811 | 247,583,005,95,lv,Latvia,371,Bite Latvija 812 | 247,583,001,31,lv,Latvia,371,Latvian Mobile Phone 813 | 247,583,009,159,lv,Latvia,371,SIA Camel Mobile 814 | 247,583,008,143,lv,Latvia,371,SIA IZZI 815 | 247,583,007,127,lv,Latvia,371,SIA Master Telecom 816 | 247,583,006,111,lv,Latvia,371,SIA Rigatta 817 | 247,583,002,47,lv,Latvia,371,Tele2 818 | 247,583,003,63,lv,Latvia,371,TRIATEL/Telekom Baltija 819 | 415,1045,033,831,lb,Lebanon,961,Cellis 820 | 415,1045,032,815,lb,Lebanon,961,Cellis2 821 | 415,1045,035,863,lb,Lebanon,961,Cellis3 822 | 415,1045,034,847,lb,Lebanon,961,FTML Cellis 823 | 415,1045,039,927,lb,Lebanon,961,MIC2/LibanCell 824 | 415,1045,038,911,lb,Lebanon,961,MIC2/LibanCell2 825 | 415,1045,037,895,lb,Lebanon,961,MIC2/LibanCell3 826 | 415,1045,001,31,lb,Lebanon,961,MIC1 (Alfa) 827 | 415,1045,003,63,lb,Lebanon,961,Touch 828 | 415,1045,036,879,lb,Lebanon,961,MIC2/LibanCell 829 | 651,1617,002,47,ls,Lesotho,266,Econet/Ezi-cel 830 | 651,1617,001,31,ls,Lesotho,266,Vodacom Lesotho 831 | 618,1560,007,127,lr,Liberia,231,Celcom 832 | 618,1560,003,63,lr,Liberia,231,Celcom2 833 | 618,1560,004,79,lr,Liberia,231,Comium BVI 834 | 618,1560,002,47,lr,Liberia,231,Libercell 835 | 618,1560,020,527,lr,Liberia,231,LibTelco 836 | 618,1560,001,31,lr,Liberia,231,Lonestar 837 | 606,1542,002,47,ly,Libya,218,Al-Madar 838 | 606,1542,001,31,ly,Libya,218,Al-Madar2 839 | 606,1542,006,111,ly,Libya,218,Hatef 840 | 606,1542,000,15,ly,Libya,218,Libyana 841 | 606,1542,003,63,ly,Libya,218,Libyana2 842 | 295,661,006,111,li,Liechtenstein,423,CUBIC (Liechtenstein 843 | 295,661,007,127,li,Liechtenstein,423,First Mobile AG 844 | 295,661,005,95,li,Liechtenstein,423,Mobilkom AG 845 | 295,661,002,47,li,Liechtenstein,423,Orange 846 | 295,661,001,31,li,Liechtenstein,423,Swisscom FL AG 847 | 295,661,077,1919,li,Liechtenstein,423,Alpmobile/Tele2 848 | 246,582,002,47,lt,Lithuania,370,Bite 849 | 246,582,001,31,lt,Lithuania,370,Omnitel 850 | 246,582,003,63,lt,Lithuania,370,Tele2 851 | 270,624,077,1919,lu,Luxembourg,352,Millicom Tango GSM 852 | 270,624,001,31,lu,Luxembourg,352,P+T LUXGSM 853 | 270,624,099,2463,lu,Luxembourg,352,VOXmobile S.A. 854 | 455,1109,004,79,mo,Macao China,853,C.T.M. TELEMOVEL+ 855 | 455,1109,001,31,mo,Macao China,853,C.T.M. TELEMOVEL+2 856 | 455,1109,002,47,mo,Macao China,853,China Telecom 857 | 455,1109,005,95,mo,Macao China,853,Hutchison Telephone (Macau) Company Ltd 858 | 455,1109,003,63,mo,Macao China,853,Hutchison Telephone (Macau) Company Ltd-2 859 | 455,1109,006,111,mo,Macao China,853,Smartone Mobile 860 | 455,1109,000,15,mo,Macao China,853,Smartone Mobile-2 861 | 294,660,075,1887,mk,Macedonia,389,MTS/Cosmofone 862 | 294,660,002,47,mk,Macedonia,389,MTS/Cosmofone2 863 | 294,660,001,31,mk,Macedonia,389,T-Mobile/Mobimak 864 | 294,660,003,63,mk,Macedonia,389,VIP Mobile 865 | 646,1606,001,31,mg,Madagascar,261,MADACOM 866 | 646,1606,002,47,mg,Madagascar,261,Orange/Soci 867 | 646,1606,003,63,mg,Madagascar,261,Sacel 868 | 646,1606,004,79,mg,Madagascar,261,Telma 869 | 650,1616,001,31,mw,Malawi,265,TNM/Telekom Network Ltd. 870 | 650,1616,010,271,mw,Malawi,265,Zain/Celtel ltd. 871 | 502,1282,001,31,my,Malaysia,60,Art900 872 | 502,1282,151,337,my,Malaysia,60,Baraka Telecom Sdn Bhd 873 | 502,1282,013,319,my,Malaysia,60,CelCom 874 | 502,1282,019,415,my,Malaysia,60,CelCom2 875 | 502,1282,016,367,my,Malaysia,60,Digi Telecommunications 876 | 502,1282,010,271,my,Malaysia,60,Digi Telecommunications-2 877 | 502,1282,020,527,my,Malaysia,60,Electcoms Wireless Sdn Bhd 878 | 502,1282,012,303,my,Malaysia,60,Maxis 879 | 502,1282,017,383,my,Malaysia,60,Maxis2 880 | 502,1282,011,287,my,Malaysia,60,MTX Utara 881 | 502,1282,153,339,my,Malaysia,60,Packet One Networks (Malaysia) Sdn Bhd 882 | 502,1282,155,341,my,Malaysia,60,Samata Communications Sdn Bhd 883 | 502,1282,154,340,my,Malaysia,60,Talk Focus Sdn Bhd 884 | 502,1282,018,399,my,Malaysia,60,U Mobile 885 | 502,1282,152,338,my,Malaysia,60,YES 886 | 472,1138,001,31,mv,Maldives,960,Dhiraagu/C&W 887 | 472,1138,002,47,mv,Maldives,960,Wataniya/WMOBILE 888 | 610,1552,001,31,ml,Mali,223,Malitel 889 | 610,1552,002,47,ml,Mali,223,Orange/IKATEL 890 | 278,632,021,543,mt,Malta,356,GO/Mobisle 891 | 278,632,077,1919,mt,Malta,356,Melita 892 | 278,632,001,31,mt,Malta,356,Vodafone 893 | 340,832,002,47,mq,Martinique (French Department of),,Outremer Telecom Martinique (only) (Martinique 894 | 340,832,012,303,mq,Martinique (French Department of),,United Telecommunications Services Caraibe SARL (UTS Caraibe Martinique Telephone Mobile) (Martinique 895 | 340,832,003,63,mq,Martinique (French Department of),,United Telecommunications Services Caraibe SARL (UTS Caraibe Martinique Telephone Mobile) (Martinique-2 896 | 609,1545,002,47,mr,Mauritania,222,Chinguitel SA 897 | 609,1545,001,31,mr,Mauritania,222,Mattel 898 | 609,1545,010,271,mr,Mauritania,222,Mauritel 899 | 617,1559,010,271,mu,Mauritius,230,Emtel Ltd 900 | 617,1559,002,47,mu,Mauritius,230,Mahanagar Telephone 901 | 617,1559,003,63,mu,Mauritius,230,Mahanagar Telephone2 902 | 617,1559,001,31,mu,Mauritius,230,Orange/Cellplus 903 | 334,820,000,15,mx,Mexico,52,Axtel 904 | 334,820,050,1295,mx,Mexico,52,IUSACell/UneFon 905 | 334,820,050,80,mx,Mexico,52,IUSACell/UneFon 906 | 334,820,040,64,mx,Mexico,52,IUSACell/UneFon2 907 | 334,820,004,79,mx,Mexico,52,IUSACell/UneFon3 908 | 334,820,003,63,mx,Mexico,52,Movistar/Pegaso 909 | 334,820,030,48,mx,Mexico,52,Movistar/Pegaso2 910 | 334,820,001,31,mx,Mexico,52,NEXTEL 911 | 334,820,090,144,mx,Mexico,52,NEXTEL2 912 | 334,820,010,16,mx,Mexico,52,NEXTEL3 913 | 334,820,080,128,mx,Mexico,52,Operadora Unefon SA de CV 914 | 334,820,070,112,mx,Mexico,52,Operadora Unefon SA de CV2 915 | 334,820,060,96,mx,Mexico,52,SAI PCS 916 | 334,820,000,15,mx,Mexico,52,SAI PCS-2 917 | 334,820,002,47,mx,Mexico,52,TelCel/America Movil 918 | 334,820,020,32,mx,Mexico,52,TelCel/America Movil-2 919 | 550,1360,001,31,fm,Micronesia,691,FSM Telecom 920 | 259,601,004,79,md,Moldova,373,Eventis Mobile 921 | 259,601,099,2463,md,Moldova,373,IDC/Unite 922 | 259,601,005,95,md,Moldova,373,IDC/Unite2 923 | 259,601,003,63,md,Moldova,373,IDC/Unite3 924 | 259,601,002,47,md,Moldova,373,Moldcell 925 | 259,601,001,31,md,Moldova,373,Orange/Voxtel 926 | 212,530,001,31,mc,Monaco,377,Dardafone LLC 927 | 212,530,010,271,mc,Monaco,377,Monaco Telecom 928 | 212,530,001,31,mc,Monaco,377,Monaco Telecom2 929 | 212,530,001,31,mc,Monaco,377,Post and Telecommunications of Kosovo JSC (PTK) 930 | 428,1064,098,2447,mn,Mongolia,976,G-Mobile Corporation Ltd 931 | 428,1064,099,2463,mn,Mongolia,976,Mobicom 932 | 428,1064,000,15,mn,Mongolia,976,Skytel Co. Ltd 933 | 428,1064,088,2191,mn,Mongolia,976,Unitel 934 | 297,663,002,47,me,Montenegro,382,Monet/T-mobile 935 | 297,663,003,63,me,Montenegro,382,Mtel 936 | 297,663,001,31,me,Montenegro,382,Promonte GSM 937 | 354,852,860,2144,ms,Montserrat,1664,Cable & Wireless 938 | 604,1540,001,31,ma,Morocco,212,IAM/Itissallat 939 | 604,1540,002,47,ma,Morocco,212,INWI/WANA 940 | 604,1540,000,15,ma,Morocco,212,Medi Telecom 941 | 643,1603,001,31,mz,Mozambique,258,mCel 942 | 643,1603,003,63,mz,Mozambique,258,Movitel 943 | 643,1603,004,79,mz,Mozambique,258,Vodacom Sarl 944 | 649,1609,003,63,na,Namibia,264,Leo / Orascom 945 | 649,1609,001,31,na,Namibia,264,MTC 946 | 649,1609,002,47,na,Namibia,264,Switch/Nam. Telec. 947 | 429,1065,002,47,np,Nepal,977,Ncell 948 | 429,1065,001,31,np,Nepal,977,NT Mobile / Namaste 949 | 429,1065,004,79,np,Nepal,977,Smart Cell 950 | 204,516,014,335,nl,Netherlands,31,6GMOBILE BV 951 | 204,516,023,575,nl,Netherlands,31,Aspider Solutions 952 | 204,516,005,95,nl,Netherlands,31,Elephant Talk Communications Premium Rate Services Netherlands BV 953 | 204,516,017,383,nl,Netherlands,31,Intercity Mobile Communications BV 954 | 204,516,010,271,nl,Netherlands,31,KPN Telecom B.V. 955 | 204,516,008,143,nl,Netherlands,31,KPN Telecom B.V.2 956 | 204,516,069,1695,nl,Netherlands,31,KPN Telecom B.V.3 957 | 204,516,012,303,nl,Netherlands,31,KPN/Telfort 958 | 204,516,028,655,nl,Netherlands,31,Lancelot BV 959 | 204,516,009,159,nl,Netherlands,31,Lycamobile Ltd 960 | 204,516,006,111,nl,Netherlands,31,Mundio/Vectone Mobile 961 | 204,516,021,543,nl,Netherlands,31,NS Railinfrabeheer B.V. 962 | 204,516,024,591,nl,Netherlands,31,Private Mobility Nederland BV 963 | 204,516,098,2447,nl,Netherlands,31,T-Mobile B.V. 964 | 204,516,016,367,nl,Netherlands,31,T-Mobile B.V.2 965 | 204,516,020,527,nl,Netherlands,31,Orange/T-mobile 966 | 204,516,002,47,nl,Netherlands,31,Tele2 967 | 204,516,007,127,nl,Netherlands,31,Teleena Holding BV 968 | 204,516,068,1679,nl,Netherlands,31,Unify Mobile 969 | 204,516,018,399,nl,Netherlands,31,UPC Nederland BV 970 | 204,516,004,79,nl,Netherlands,31,Vodafone Libertel 971 | 204,516,003,63,nl,Netherlands,31,Voiceworks Mobile BV 972 | 204,516,015,351,nl,Netherlands,31,Ziggo BV 973 | 362,866,630,1584,an,Netherlands Antilles,599,Cingular Wireless 974 | 362,866,069,1695,an,Netherlands Antilles,599,DigiCell 975 | 362,866,051,1311,an,Netherlands Antilles,599,TELCELL GSM 976 | 362,866,091,2335,an,Netherlands Antilles,599,SETEL GSM 977 | 362,866,951,2385,an,Netherlands Antilles,599,UTS Wireless 978 | 546,1350,001,31,nc,New Caledonia,687,OPT Mobilis 979 | 530,1328,028,655,nz,New Zealand,64,2degrees 980 | 530,1328,005,95,nz,New Zealand,64,Telecom Mobile Ltd 981 | 530,1328,002,2,nz,New Zealand,64,NZ Telecom CDMA 982 | 530,1328,004,4,nz,New Zealand,64,Telstra 983 | 530,1328,024,591,nz,New Zealand,64,Two Degrees Mobile Ltd 984 | 530,1328,001,31,nz,New Zealand,64,Vodafone 985 | 530,1328,003,3,nz,New Zealand,64,Walker Wireless Ltd. 986 | 710,1808,021,543,ni,Nicaragua,505,Empresa Nicaraguense de Telecomunicaciones SA (ENITEL) 987 | 710,1808,030,783,ni,Nicaragua,505,Movistar 988 | 710,1808,073,1855,ni,Nicaragua,505,Claro 989 | 614,1556,003,63,ne,Niger,227,Etisalat/TeleCel 990 | 614,1556,004,79,ne,Niger,227,Orange/Sahelc. 991 | 614,1556,001,31,ne,Niger,227,Orange/Sahelc.2 992 | 614,1556,002,47,ne,Niger,227,Zain/CelTel 993 | 621,1569,020,527,ng,Nigeria,234,Airtel/ZAIN/Econet 994 | 621,1569,060,1551,ng,Nigeria,234,ETISALAT 995 | 621,1569,050,1295,ng,Nigeria,234,Glo Mobile 996 | 621,1569,040,1039,ng,Nigeria,234,M-Tel/Nigeria Telecom. Ltd. 997 | 621,1569,030,783,ng,Nigeria,234,MTN 998 | 621,1569,099,2463,ng,Nigeria,234,Starcomms 999 | 621,1569,025,607,ng,Nigeria,234,Visafone 1000 | 621,1569,001,31,ng,Nigeria,234,Visafone2 1001 | 555,1365,001,31,nu,Niue,,Niue Telecom 1002 | 242,578,009,159,no,Norway,47,Com4 AS 1003 | 242,578,020,527,no,Norway,47,Jernbaneverket (GSM-R) 1004 | 242,578,021,543,no,Norway,47,Jernbaneverket (GSM-R)-2 1005 | 242,578,023,575,no,Norway,47,Lycamobile Ltd 1006 | 242,578,002,47,no,Norway,47,Netcom 1007 | 242,578,022,559,no,Norway,47,Network Norway AS 1008 | 242,578,005,95,no,Norway,47,Network Norway AS-2 1009 | 242,578,006,6,no,Norway,47,ICE Nordisk Mobiltelefon AS 1010 | 242,578,008,143,no,Norway,47,TDC Mobil A/S 1011 | 242,578,004,79,no,Norway,47,Tele2 1012 | 242,578,012,303,no,Norway,47,Telenor 1013 | 242,578,001,31,no,Norway,47,Telenor2 1014 | 242,578,003,63,no,Norway,47,Teletopia 1015 | 242,578,007,127,no,Norway,47,Ventelo AS 1016 | 422,1058,003,63,om,Oman,968,Nawras 1017 | 422,1058,002,47,om,Oman,968,Oman Mobile/GTO 1018 | 410,1040,008,143,pk,Pakistan,92,Instaphone 1019 | 410,1040,001,31,pk,Pakistan,92,Mobilink 1020 | 410,1040,006,111,pk,Pakistan,92,Telenor 1021 | 410,1040,003,63,pk,Pakistan,92,UFONE/PAKTel 1022 | 410,1040,007,127,pk,Pakistan,92,Warid Telecom 1023 | 410,1040,004,79,pk,Pakistan,92,ZONG/CMPak 1024 | 552,1362,080,2063,pw,Palau (Republic of),,Palau Mobile Corp. (PMC) (Palau 1025 | 552,1362,001,31,pw,Palau (Republic of),,Palau National Communications Corp. (PNCC) (Palau 1026 | 425,1061,005,95,ps,Palestinian Territory,970,Jawwal 1027 | 425,1061,006,111,ps,Palestinian Territory,970,Wataniya Mobile 1028 | 714,1812,001,31,pa,Panama,507,Cable & Wireless S.A. 1029 | 714,1812,003,63,pa,Panama,507,Claro 1030 | 714,1812,004,79,pa,Panama,507,Digicel 1031 | 714,1812,020,32,pa,Panama,507,Movistar 1032 | 714,1812,002,47,pa,Panama,507,Movistar2 1033 | 537,1335,003,63,pg,Papua New Guinea,675,Digicel 1034 | 537,1335,002,47,pg,Papua New Guinea,675,GreenCom PNG Ltd 1035 | 537,1335,001,31,pg,Papua New Guinea,675,Pacific Mobile 1036 | 744,1860,002,47,py,Paraguay,595,Claro/Hutchison 1037 | 744,1860,003,63,py,Paraguay,595,Compa 1038 | 744,1860,001,31,py,Paraguay,595,Hola/VOX 1039 | 744,1860,005,5,py,Paraguay,595,TIM/Nucleo/Personal 1040 | 744,1860,004,79,py,Paraguay,595,Tigo/Telecel 1041 | 716,1814,020,527,pe,Peru,51,Claro /Amer.Mov./TIM 1042 | 716,1814,010,271,pe,Peru,51,Claro /Amer.Mov./TIM-2 1043 | 716,1814,002,47,pe,Peru,51,GlobalStar 1044 | 716,1814,001,31,pe,Peru,51,GlobalStar2 1045 | 716,1814,006,111,pe,Peru,51,Movistar 1046 | 716,1814,007,127,pe,Peru,51,Nextel 1047 | 515,1301,000,15,ph,Philippines,63,Fix Line 1048 | 515,1301,001,31,ph,Philippines,63,Globe Telecom 1049 | 515,1301,002,47,ph,Philippines,63,Globe Telecom2 1050 | 515,1301,088,2191,ph,Philippines,63,Next Mobile 1051 | 515,1301,018,399,ph,Philippines,63,RED Mobile/Cure 1052 | 515,1301,003,63,ph,Philippines,63,Smart 1053 | 515,1301,005,95,ph,Philippines,63,SUN/Digitel 1054 | 260,608,017,383,pl,Poland,48,Aero2 SP. 1055 | 260,608,018,399,pl,Poland,48,AMD Telecom. 1056 | 260,608,038,911,pl,Poland,48,CallFreedom Sp. z o.o. 1057 | 260,608,012,303,pl,Poland,48,Cyfrowy POLSAT S.A. 1058 | 260,608,008,143,pl,Poland,48,e-Telko 1059 | 260,608,009,159,pl,Poland,48,Lycamobile 1060 | 260,608,016,367,pl,Poland,48,Mobyland 1061 | 260,608,036,879,pl,Poland,48,Mundio Mobile Sp. z o.o. 1062 | 260,608,007,127,pl,Poland,48,Play/P4 1063 | 260,608,011,287,pl,Poland,48,NORDISK Polska 1064 | 260,608,005,95,pl,Poland,48,Orange/IDEA/Centertel 1065 | 260,608,003,63,pl,Poland,48,Orange/IDEA/Centertel2 1066 | 260,608,035,863,pl,Poland,48,PKP Polskie Linie Kolejowe S.A. 1067 | 260,608,098,2447,pl,Poland,48,Play/P4 1068 | 260,608,006,111,pl,Poland,48,Play/P4-2 1069 | 260,608,001,31,pl,Poland,48,Polkomtel/Plus 1070 | 260,608,010,271,pl,Poland,48,Sferia 1071 | 260,608,014,335,pl,Poland,48,Sferia2 1072 | 260,608,013,319,pl,Poland,48,Sferia3 1073 | 260,608,034,847,pl,Poland,48,T-Mobile/ERA 1074 | 260,608,002,47,pl,Poland,48,T-Mobile/ERA-2 1075 | 260,608,015,351,pl,Poland,48,Tele2 1076 | 260,608,004,79,pl,Poland,48,Tele2 1077 | 268,616,004,79,pt,Portugal,351,CTT - Correios de Portugal SA 1078 | 268,616,003,63,pt,Portugal,351,Optimus 1079 | 268,616,007,127,pt,Portugal,351,Optimus2 1080 | 268,616,006,111,pt,Portugal,351,TMN 1081 | 268,616,001,31,pt,Portugal,351,Vodafone 1082 | 330,816,011,287,pr,Puerto Rico,,Puerto Rico Telephone Company Inc. (PRTC) 1083 | 427,1063,001,31,qa,Qatar,974,Qtel 1084 | 427,1063,002,47,qa,Qatar,974,Vodafone 1085 | 647,1607,000,15,re,Reunion,262,Orange 1086 | 647,1607,002,47,re,Reunion,262,Outremer Telecom 1087 | 647,1607,010,271,re,Reunion,262,SFR 1088 | 226,550,003,63,ro,Romania,40,Cosmote 1089 | 226,550,011,287,ro,Romania,40,Enigma Systems 1090 | 226,550,010,271,ro,Romania,40,Orange 1091 | 226,550,005,95,ro,Romania,40,RCS&RDS Digi Mobile 1092 | 226,550,002,47,ro,Romania,40,Romtelecom SA 1093 | 226,550,006,111,ro,Romania,40,Telemobil/Zapp 1094 | 226,550,001,31,ro,Romania,40,Vodafone 1095 | 226,550,004,79,ro,Romania,40,Telemobil/Zapp-2 1096 | 250,592,012,303,ru,Russian Federation,79,Baykal Westcom 1097 | 250,592,028,655,ru,Russian Federation,79,Bee Line GSM 1098 | 250,592,010,271,ru,Russian Federation,79,DTC/Don Telecom 1099 | 250,592,020,527,ru,Russian Federation,79,JSC Rostov Cellular Communications 1100 | 250,592,013,319,ru,Russian Federation,79,Kuban GSM 1101 | 250,592,035,863,ru,Russian Federation,79,LLC Ekaterinburg-2000 1102 | 250,592,020,527,ru,Russian Federation,79,LLC Personal Communication Systems in the Region 1103 | 250,592,002,47,ru,Russian Federation,79,Megafon 1104 | 250,592,001,31,ru,Russian Federation,79,MTS 1105 | 250,592,003,63,ru,Russian Federation,79,NCC 1106 | 250,592,016,367,ru,Russian Federation,79,NTC 1107 | 250,592,019,415,ru,Russian Federation,79,OJSC Altaysvyaz 1108 | 250,592,099,2463,ru,Russian Federation,79,OJSC Vimpel-Communications (VimpelCom) 1109 | 250,592,011,287,ru,Russian Federation,79,Orensot 1110 | 250,592,092,2351,ru,Russian Federation,79,Printelefone 1111 | 250,592,004,79,ru,Russian Federation,79,Sibchallenge 1112 | 250,592,044,1103,ru,Russian Federation,79,StavTelesot 1113 | 250,592,020,527,ru,Russian Federation,79,Tele2/ECC/Volgogr. 1114 | 250,592,093,2367,ru,Russian Federation,79,Telecom XXL 1115 | 250,592,039,927,ru,Russian Federation,79,U-Tel/Ermak RMS 1116 | 250,592,017,383,ru,Russian Federation,79,U-Tel/Ermak RMS-2 1117 | 250,592,039,927,ru,Russian Federation,79,UralTel 1118 | 250,592,017,383,ru,Russian Federation,79,UralTel2 1119 | 250,592,005,95,ru,Russian Federation,79,Yenisey Telecom 1120 | 250,592,015,351,ru,Russian Federation,79,ZAO SMARTS 1121 | 250,592,007,127,ru,Russian Federation,79,ZAO SMARTS-2 1122 | 635,1589,014,335,rw,Rwanda,250,Airtel Rwanda Ltd 1123 | 635,1589,010,271,rw,Rwanda,250,MTN/Rwandacell 1124 | 635,1589,013,319,rw,Rwanda,250,TIGO 1125 | 356,854,110,272,kn,Saint Kitts and Nevis,1869,Cable & Wireless 1126 | 356,854,050,1295,kn,Saint Kitts and Nevis,1869,Digicel 1127 | 356,854,070,1807,kn,Saint Kitts and Nevis,1869,UTS Cariglobe 1128 | 358,856,110,272,lc,Saint Lucia,1758,Cable & Wireless 1129 | 358,856,030,783,lc,Saint Lucia,1758,Cingular Wireless 1130 | 358,856,050,1295,lc,Saint Lucia,1758,Digicel (St Lucia) Limited 1131 | 549,1353,027,639,ws,Samoa,685,Samoatel Mobile 1132 | 549,1353,001,31,ws,Samoa,685,Telecom Samoa Cellular Ltd. 1133 | 292,658,001,31,sm,San Marino,378,Prima Telecom 1134 | 626,1574,001,31,st,Sao Tome & Principe,239,CSTmovel 1135 | 901,2305,014,335,n/a,Satellite Networks,870,AeroMobile 1136 | 901,2305,011,287,n/a,Satellite Networks,870,InMarSAT 1137 | 901,2305,012,303,n/a,Satellite Networks,870,Maritime Communications Partner AS 1138 | 901,2305,005,95,n/a,Satellite Networks,870,Thuraya Satellite 1139 | 420,1056,007,7,sa,Saudi Arabia,966,Zain 1140 | 420,1056,003,63,sa,Saudi Arabia,966,Etihad/Etisalat/Mobily 1141 | 420,1056,001,31,sa,Saudi Arabia,966,STC/Al Jawal 1142 | 420,1056,004,79,sa,Saudi Arabia,966,Zain 1143 | 608,1544,003,63,sn,Senegal,221,Expresso/Sudatel 1144 | 608,1544,001,31,sn,Senegal,221,Orange/Sonatel 1145 | 608,1544,002,47,sn,Senegal,221,Sentel GSM 1146 | 220,544,003,63,rs,Serbia,381,MTS/Telekom Srbija 1147 | 220,544,002,47,rs,Serbia,381,Telenor/Mobtel 1148 | 220,544,001,1,rs,Serbia,381,Telenor/Mobtel2 1149 | 220,544,005,95,rs,Serbia,381,VIP Mobile 1150 | 633,1587,010,271,sc,Seychelles,248,Airtel 1151 | 633,1587,001,31,sc,Seychelles,248,C&W 1152 | 633,1587,002,47,sc,Seychelles,248,Smartcom 1153 | 619,1561,003,3,sl,Sierra Leone,232,Africel 1154 | 619,1561,005,5,sl,Sierra Leone,232,Africel2 1155 | 619,1561,001,1,sl,Sierra Leone,232,Zain/Celtel 1156 | 619,1561,004,4,sl,Sierra Leone,232,Comium 1157 | 619,1561,002,2,sl,Sierra Leone,232,Tigo/Millicom 1158 | 619,1561,025,607,sl,Sierra Leone,232,Mobitel 1159 | 525,1317,012,303,sg,Singapore,65,GRID Communications Pte Ltd 1160 | 525,1317,003,63,sg,Singapore,65,MobileOne Ltd 1161 | 525,1317,001,31,sg,Singapore,65,Singtel 1162 | 525,1317,007,127,sg,Singapore,65,Singtel2 1163 | 525,1317,002,47,sg,Singapore,65,Singtel3 1164 | 525,1317,006,111,sg,Singapore,65,Starhub 1165 | 525,1317,005,95,sg,Singapore,65,Starhub2 1166 | 362,866,051,1311,sx,Sint Maarten (Dutch part),,TelCell NV (Sint Maarten 1167 | 362,866,091,2335,sx,Sint Maarten (Dutch part),,UTS St. Maarten (Sint Maarten 1168 | 231,561,006,111,sk,Slovakia,421,O2 1169 | 231,561,001,31,sk,Slovakia,421,Orange 1170 | 231,561,005,95,sk,Slovakia,421,Orange2 1171 | 231,561,015,351,sk,Slovakia,421,Orange 1172 | 231,561,002,47,sk,Slovakia,421,T-Mobile 1173 | 231,561,004,79,sk,Slovakia,421,T-Mobile3 1174 | 231,561,099,2463,sk,Slovakia,421,Zeleznice Slovenskej republiky (ZSR) 1175 | 293,659,041,1055,si,Slovenia,386,Dukagjini Telecommunications Sh.P.K. 1176 | 293,659,041,1055,si,Slovenia,386,Ipko Telecommunications d. o. o. 1177 | 293,659,041,1055,si,Slovenia,386,Mobitel 1178 | 293,659,040,1039,si,Slovenia,386,SI.Mobil 1179 | 293,659,010,271,si,Slovenia,386,Slovenske zeleznice d.o.o. 1180 | 293,659,064,1615,si,Slovenia,386,T-2 d.o.o. 1181 | 293,659,070,1807,si,Slovenia,386,TusMobil/VEGA 1182 | 540,1344,002,47,sb,Solomon Islands,677,bemobile 1183 | 540,1344,010,271,sb,Solomon Islands,677,BREEZE 1184 | 540,1344,001,31,sb,Solomon Islands,677,BREEZE2 1185 | 637,1591,030,783,so,Somalia,252,Golis 1186 | 637,1591,019,415,so,Somalia,252,HorTel 1187 | 637,1591,060,1551,so,Somalia,252,Nationlink 1188 | 637,1591,010,271,so,Somalia,252,Nationlink2 1189 | 637,1591,004,4,so,Somalia,252,Somafone 1190 | 637,1591,082,2095,so,Somalia,252,Telcom Mobile Somalia 1191 | 637,1591,001,31,so,Somalia,252,Telesom 1192 | 655,1621,002,47,za,South Africa,27,8.ta 1193 | 655,1621,021,543,za,South Africa,27,Cape Town Metropolitan 1194 | 655,1621,007,127,za,South Africa,27,Cell C 1195 | 655,1621,012,303,za,South Africa,27,MTN 1196 | 655,1621,010,271,za,South Africa,27,MTN2 1197 | 655,1621,006,111,za,South Africa,27,Sentech 1198 | 655,1621,001,31,za,South Africa,27,Vodacom 1199 | 655,1621,019,415,za,South Africa,27,Wireless Business Solutions (Pty) Ltd 1200 | 659,1625,003,63,ss,South Sudan (Republic of),,Gemtel Ltd (South Sudan 1201 | 659,1625,002,47,ss,South Sudan (Republic of),,MTN South Sudan (South Sudan 1202 | 659,1625,004,79,ss,South Sudan (Republic of),,Network of The World Ltd (NOW) (South Sudan 1203 | 659,1625,006,111,ss,South Sudan (Republic of),,Zain South Sudan (South Sudan 1204 | 214,532,023,575,es,Spain,34,Lycamobile SL 1205 | 214,532,022,559,es,Spain,34,Movistar2 1206 | 214,532,015,351,es,Spain,34,BT Espana Compania de Servicios Globales de Telecomunicaciones SAU 1207 | 214,532,018,399,es,Spain,34,Cableuropa SAU (ONO) 1208 | 214,532,008,143,es,Spain,34,Euskaltel SA 1209 | 214,532,020,527,es,Spain,34,fonYou Wireless SL 1210 | 214,532,021,543,es,Spain,34,Jazz Telecom SAU 1211 | 214,532,026,623,es,Spain,34,Lleida 1212 | 214,532,025,607,es,Spain,34,Lycamobile SL 1213 | 214,532,007,127,es,Spain,34,Movistar 1214 | 214,532,005,95,es,Spain,34,Movistar (resellers) 1215 | 214,532,009,159,es,Spain,34,Orange (resellers) 1216 | 214,532,003,63,es,Spain,34,Orange 1217 | 214,532,011,287,es,Spain,34,Orange2 1218 | 214,532,017,383,es,Spain,34,R Cable y Telecomunicaciones Galicia SA 1219 | 214,532,019,415,es,Spain,34,Simyo/KPN 1220 | 214,532,016,367,es,Spain,34,Telecable de Asturias SA 1221 | 214,532,027,639,es,Spain,34,Truphone 1222 | 214,532,001,31,es,Spain,34,Vodafone 1223 | 214,532,006,111,es,Spain,34,Vodafone Enabler Espana SL 1224 | 214,532,004,79,es,Spain,34,Yoigo 1225 | 413,1043,005,95,lk,Sri Lanka,94,Bharti Airtel 1226 | 413,1043,003,63,lk,Sri Lanka,94,Etisalat/Tigo 1227 | 413,1043,008,143,lk,Sri Lanka,94,H3G Hutchison 1228 | 413,1043,001,31,lk,Sri Lanka,94,Mobitel Ltd. 1229 | 413,1043,002,47,lk,Sri Lanka,94,MTN/Dialog 1230 | 308,776,001,31,pm,St. Pierre & Miquelon,508,Ameris 1231 | 360,864,110,272,vc,St. Vincent & Gren.,1784,C & W 1232 | 360,864,010,271,vc,St. Vincent & Gren.,1784,Cingular 1233 | 360,864,100,256,vc,St. Vincent & Gren.,1784,Cingular-2 1234 | 360,864,050,80,vc,St. Vincent & Gren.,1784,Digicel 1235 | 360,864,070,1807,vc,St. Vincent & Gren.,1784,Digicel 1236 | 634,1588,000,15,sd,Sudan,249,Canar Telecom 1237 | 634,1588,022,559,sd,Sudan,249,MTN 1238 | 634,1588,002,47,sd,Sudan,249,MTN 1239 | 634,1588,015,351,sd,Sudan,249,Sudani One 1240 | 634,1588,007,127,sd,Sudan,249,Sudani One-2 1241 | 634,1588,005,95,sd,Sudan,249,Vivacell 1242 | 634,1588,008,143,sd,Sudan,249,Vivacell 1243 | 634,1588,001,31,sd,Sudan,249,ZAIN/Mobitel 1244 | 634,1588,006,111,sd,Sudan,249,ZAIN/Mobitel-2 1245 | 746,1862,003,63,sr,Suriname,597,Digicel 1246 | 746,1862,002,47,sr,Suriname,597,Telecommunicatiebedrijf Suriname (TELESUR) 1247 | 746,1862,001,1,sr,Suriname,597,Telesur 1248 | 746,1862,004,79,sr,Suriname,597,UNIQA 1249 | 653,1619,010,271,sz,Swaziland,268,Swazi MTN 1250 | 653,1619,001,31,sz,Swaziland,268,SwaziTelecom 1251 | 240,576,035,863,se,Sweden,46,42 Telecom AB 1252 | 240,576,016,367,se,Sweden,46,42 Telecom AB-2 1253 | 240,576,026,623,se,Sweden,46,Beepsend 1254 | 240,576,000,15,se,Sweden,46,Compatel 1255 | 240,576,028,655,se,Sweden,46,CoolTEL Aps 1256 | 240,576,025,607,se,Sweden,46,Digitel Mobile Srl 1257 | 240,576,022,559,se,Sweden,46,Eu Tel AB 1258 | 240,576,027,639,se,Sweden,46,Fogg Mobile AB 1259 | 240,576,018,399,se,Sweden,46,Generic Mobile Systems Sweden AB 1260 | 240,576,017,383,se,Sweden,46,Gotalandsnatet AB 1261 | 240,576,002,47,se,Sweden,46,H3G Access AB 1262 | 240,576,004,79,se,Sweden,46,H3G Access AB-2 1263 | 240,576,036,879,se,Sweden,46,ID Mobile 1264 | 240,576,023,575,se,Sweden,46,Infobip Ltd. 1265 | 240,576,011,287,se,Sweden,46,Lindholmen Science Park AB 1266 | 240,576,012,303,se,Sweden,46,Lycamobile Ltd 1267 | 240,576,029,671,se,Sweden,46,Mercury International Carrier Services 1268 | 240,576,003,63,se,Sweden,46,Orange 1269 | 240,576,010,271,se,Sweden,46,Spring Mobil AB 1270 | 240,576,014,335,se,Sweden,46,TDC Sverige AB 1271 | 240,576,007,127,se,Sweden,46,Tele2 Sverige AB 1272 | 240,576,005,95,se,Sweden,46,Tele2 Sverige AB 1273 | 240,576,024,591,se,Sweden,46,Tele2 Sverige AB-2 1274 | 240,576,024,591,se,Sweden,46,Telenor (Vodafone) 1275 | 240,576,008,143,se,Sweden,46,Telenor (Vodafone)-2 1276 | 240,576,004,79,se,Sweden,46,Telenor (Vodafone)-3 1277 | 240,576,006,111,se,Sweden,46,Telenor (Vodafone)-4 1278 | 240,576,009,159,se,Sweden,46,Telenor Mobile Sverige AS 1279 | 240,576,005,95,se,Sweden,46,Telia Mobile 1280 | 240,576,001,31,se,Sweden,46,Telia Mobile-2 1281 | 240,576,000,15,se,Sweden,46,EUTel 1282 | 240,576,008,143,se,Sweden,46,Timepiece Servicos De Consultoria LDA (Universal Telecom) 1283 | 240,576,013,319,se,Sweden,46,Ventelo Sverige AB 1284 | 240,576,020,527,se,Sweden,46,Wireless Maingate AB 1285 | 240,576,015,351,se,Sweden,46,Wireless Maingate Nordic AB 1286 | 228,552,051,1311,ch,Switzerland,41,BebbiCell AG 1287 | 228,552,009,159,ch,Switzerland,41,Comfone AG 1288 | 228,552,005,95,ch,Switzerland,41,Comfone AG 1289 | 228,552,007,127,ch,Switzerland,41,TDC Sunrise 1290 | 228,552,054,1359,ch,Switzerland,41,Lycamobile AG 1291 | 228,552,052,1327,ch,Switzerland,41,Mundio Mobile AG 1292 | 228,552,003,63,ch,Switzerland,41,Orange 1293 | 228,552,001,31,ch,Switzerland,41,Swisscom 1294 | 228,552,012,303,ch,Switzerland,41,TDC Sunrise2 1295 | 228,552,002,47,ch,Switzerland,41,TDC Sunrise3 1296 | 228,552,008,143,ch,Switzerland,41,TDC Sunrise4 1297 | 228,552,053,1343,ch,Switzerland,41,upc cablecom GmbH 1298 | 417,1047,002,47,sy,Syrian Arab Republic,963,MTN/Spacetel 1299 | 417,1047,009,159,sy,Syrian Arab Republic,963,Syriatel Holdings 1300 | 417,1047,001,31,sy,Syrian Arab Republic,963,Syriatel Holdings2 1301 | 466,1126,068,1679,tw,Taiwan,886,ACeS Taiwan - ACeS Taiwan Telecommunications Co Ltd 1302 | 466,1126,005,95,tw,Taiwan,886,Asia Pacific Telecom Co. Ltd (APT) 1303 | 466,1126,011,287,tw,Taiwan,886,Chunghwa Telecom LDM 1304 | 466,1126,092,2351,tw,Taiwan,886,Chunghwa Telecom LDM-2 1305 | 466,1126,002,47,tw,Taiwan,886,Far EasTone 1306 | 466,1126,001,31,tw,Taiwan,886,Far EasTone2 1307 | 466,1126,007,127,tw,Taiwan,886,Far EasTone3 1308 | 466,1126,006,111,tw,Taiwan,886,Far EasTone4 1309 | 466,1126,003,63,tw,Taiwan,886,Far EasTone6 1310 | 466,1126,010,271,tw,Taiwan,886,Global Mobile Corp. 1311 | 466,1126,056,1391,tw,Taiwan,886,International Telecom Co. Ltd (FITEL) 1312 | 466,1126,088,2191,tw,Taiwan,886,KG Telecom 1313 | 466,1126,099,2463,tw,Taiwan,886,TransAsia 1314 | 466,1126,097,2431,tw,Taiwan,886,Taiwan Cellular 1315 | 466,1126,093,2367,tw,Taiwan,886,Mobitai 1316 | 466,1126,089,2207,tw,Taiwan,886,VIBO 1317 | 466,1126,009,159,tw,Taiwan,886,VMAX Telecom Co. Ltd 1318 | 436,1078,004,79,tj,Tajikistan,992,Babilon-M 1319 | 436,1078,005,95,tj,Tajikistan,992,Bee Line 1320 | 436,1078,002,47,tj,Tajikistan,992,CJSC Indigo Tajikistan 1321 | 436,1078,012,303,tj,Tajikistan,992,Tcell/JC Somoncom 1322 | 436,1078,003,63,tj,Tajikistan,992,MLT/TT mobile 1323 | 436,1078,001,31,tj,Tajikistan,992,Tcell/JC Somoncom 1324 | 640,1600,008,143,tz,Tanzania,255,Benson Informatics Ltd 1325 | 640,1600,006,111,tz,Tanzania,255,Dovetel (T) Ltd 1326 | 640,1600,009,159,tz,Tanzania,255,ExcellentCom (T) Ltd 1327 | 640,1600,011,287,tz,Tanzania,255,Smile Communications Tanzania Ltd 1328 | 640,1600,007,127,tz,Tanzania,255,Tanzania Telecommunications Company Ltd (TTCL) 1329 | 640,1600,002,47,tz,Tanzania,255,TIGO/MIC 1330 | 640,1600,001,1,tz,Tanzania,255,Tri Telecomm. Ltd. 1331 | 640,1600,004,79,tz,Tanzania,255,Vodacom Ltd 1332 | 640,1600,005,95,tz,Tanzania,255,ZAIN/Celtel 1333 | 640,1600,003,63,tz,Tanzania,255,Zantel/Zanzibar Telecom 1334 | 520,1312,020,527,th,Thailand,66,ACeS Thailand - ACeS Regional Services Co Ltd 1335 | 520,1312,015,351,th,Thailand,66,ACT Mobile 1336 | 520,1312,003,63,th,Thailand,66,Advanced Wireless Networks/AWN 1337 | 520,1312,001,31,th,Thailand,66,AIS/Advanced Info Service 1338 | 520,1312,023,575,th,Thailand,66,Digital Phone Co. 1339 | 520,1312,000,15,th,Thailand,66,Hutch/CAT CDMA 1340 | 520,1312,018,399,th,Thailand,66,Total Access (DTAC) 1341 | 520,1312,005,95,th,Thailand,66,Total Access (DTAC) 1342 | 520,1312,004,79,th,Thailand,66,True Move/Orange 1343 | 520,1312,099,2463,th,Thailand,66,True Move/Orange 1344 | 514,1300,001,31,tl,Timor-Leste,670,Telin/ Telkomcel 1345 | 514,1300,002,47,tl,Timor-Leste,670,Timor Telecom 1346 | 615,1557,002,2,tg,Togo,228,Telecel/MOOV 1347 | 615,1557,003,63,tg,Togo,228,Telecel/MOOV-2 1348 | 615,1557,001,31,tg,Togo,228,Togo Telecom/TogoCELL 1349 | 539,1337,043,1087,to,Tonga,676,Shoreline Communication 1350 | 539,1337,001,1,to,Tonga,676,Tonga Communications 1351 | 374,884,129,297,tt,Trinidad and Tobago,1868,Bmobile/TSTT 1352 | 374,884,130,304,tt,Trinidad and Tobago,1868,Digicel 1353 | 374,884,140,320,tt,Trinidad and Tobago,1868,LaqTel Ltd. 1354 | 605,1541,001,31,tn,Tunisia,216,Orange 1355 | 605,1541,003,63,tn,Tunisia,216,Orascom Telecom 1356 | 605,1541,002,47,tn,Tunisia,216,Tunisie Telecom 1357 | 286,646,004,79,tr,Turkey,90,AVEA/Aria 1358 | 286,646,003,63,tr,Turkey,90,AVEA/Aria-2 1359 | 286,646,001,31,tr,Turkey,90,Turkcell 1360 | 286,646,002,47,tr,Turkey,90,Vodafone-Telsim 1361 | 438,1080,001,31,tm,Turkmenistan,993,Barash Communication 1362 | 438,1080,002,47,tm,Turkmenistan,993,TM-Cell 1363 | 376,886,350,848,tc,Turks and Caicos Islands,,Cable & Wireless (TCI) Ltd 1364 | 376,886,050,80,tc,Turks and Caicos Islands,,Digicel TCI Ltd 1365 | 376,886,352,850,tc,Turks and Caicos Islands,,IslandCom Communications Ltd. 1366 | 553,1363,001,31,tv,Tuvalu,,Tuvalu Telecommunication Corporation (TTC) 1367 | 641,1601,001,31,ug,Uganda,256,Celtel 1368 | 641,1601,066,1647,ug,Uganda,256,i-Tel Ltd 1369 | 641,1601,030,783,ug,Uganda,256,K2 Telecom Ltd 1370 | 641,1601,010,271,ug,Uganda,256,MTN Ltd. 1371 | 641,1601,014,335,ug,Uganda,256,Orange 1372 | 641,1601,033,831,ug,Uganda,256,Smile Communications Uganda Ltd 1373 | 641,1601,018,399,ug,Uganda,256,Suretelecom Uganda Ltd 1374 | 641,1601,011,287,ug,Uganda,256,Uganda Telecom Ltd. 1375 | 641,1601,022,559,ug,Uganda,256,Airtel/Warid 1376 | 255,597,006,111,ua,Ukraine,380,Astelit/LIFE 1377 | 255,597,005,95,ua,Ukraine,380,Golden Telecom 1378 | 255,597,039,927,ua,Ukraine,380,Golden Telecom 1379 | 255,597,004,79,ua,Ukraine,380,Intertelecom Ltd (IT) 1380 | 255,597,067,1663,ua,Ukraine,380,KyivStar 1381 | 255,597,003,63,ua,Ukraine,380,KyivStar2 1382 | 255,597,021,543,ua,Ukraine,380,Telesystems Of Ukraine CJSC (TSU) 1383 | 255,597,007,127,ua,Ukraine,380,TriMob LLC 1384 | 255,597,050,1295,ua,Ukraine,380,UMC/MTS 1385 | 255,597,002,47,ua,Ukraine,380,Beeline 1386 | 255,597,001,31,ua,Ukraine,380,UMC/MTS 1387 | 255,597,068,1679,ua,Ukraine,380,Beeline 1388 | 424,1060,003,63,ae,United Arab Emirates,971,DU 1389 | 431,1073,002,47,ae,United Arab Emirates,971,Etisalat 1390 | 430,1072,002,47,ae,United Arab Emirates,971,Etisalat-2 1391 | 424,1060,002,47,ae,United Arab Emirates,971,Etisalat-3 1392 | 234,564,003,63,gb,United Kingdom,44,Airtel/Vodafone 1393 | 234,564,076,1903,gb,United Kingdom,44,BT Group 1394 | 234,564,077,1919,gb,United Kingdom,44,BT Group2 1395 | 234,564,007,127,gb,United Kingdom,44,Cable and Wireless 1396 | 234,564,092,2351,gb,United Kingdom,44,Cable and Wireless-2 1397 | 234,564,036,879,gb,United Kingdom,44,Calbe and Wireless Isle of Man 1398 | 234,564,018,399,gb,United Kingdom,44,Cloud9/wire9 Tel. 1399 | 235,565,002,47,gb,United Kingdom,44,Everyth. Ev.wh. 1400 | 234,564,017,383,gb,United Kingdom,44,FlexTel 1401 | 234,564,055,1375,gb,United Kingdom,44,Guernsey Telecoms 1402 | 234,564,014,335,gb,United Kingdom,44,HaySystems 1403 | 234,564,094,2383,gb,United Kingdom,44,Hutchinson 3G 1404 | 234,564,020,527,gb,United Kingdom,44,Hutchinson 3G-2 1405 | 234,564,075,1887,gb,United Kingdom,44,Inquam Telecom Ltd 1406 | 234,564,050,1295,gb,United Kingdom,44,Jersey Telecom 1407 | 234,564,035,863,gb,United Kingdom,44,JSC Ingenicum 1408 | 234,564,026,623,gb,United Kingdom,44,Lycamobile 1409 | 234,564,058,1423,gb,United Kingdom,44,Manx Telecom 1410 | 234,564,001,31,gb,United Kingdom,44,Mapesbury C. Ltd 1411 | 234,564,028,655,gb,United Kingdom,44,Marthon Telecom 1412 | 234,564,010,271,gb,United Kingdom,44,O2 Ltd. 1413 | 234,564,002,47,gb,United Kingdom,44,O2 Ltd. 1414 | 234,564,011,287,gb,United Kingdom,44,O2 Ltd. 1415 | 234,564,008,143,gb,United Kingdom,44,OnePhone 1416 | 234,564,016,367,gb,United Kingdom,44,Opal Telecom 1417 | 234,564,034,847,gb,United Kingdom,44,Everyth. Ev.wh./Orange 1418 | 234,564,033,831,gb,United Kingdom,44,Everyth. Ev.wh./Orange-2 1419 | 234,564,019,415,gb,United Kingdom,44,PMN/Teleware 1420 | 234,564,012,303,gb,United Kingdom,44,Railtrack Plc 1421 | 234,564,022,559,gb,United Kingdom,44,Routotelecom 1422 | 234,564,024,591,gb,United Kingdom,44,Stour Marine 1423 | 234,564,037,895,gb,United Kingdom,44,Synectiv Ltd. 1424 | 234,564,031,799,gb,United Kingdom,44,Everyth. Ev.wh./T-Mobile 1425 | 234,564,030,783,gb,United Kingdom,44,Everyth. Ev.wh./T-Mobile-2 1426 | 234,564,032,815,gb,United Kingdom,44,Everyth. Ev.wh./T-Mobile-3 1427 | 234,564,027,639,gb,United Kingdom,44,Vodafone 1428 | 234,564,009,159,gb,United Kingdom,44,Tismi 1429 | 234,564,025,607,gb,United Kingdom,44,Truphone 1430 | 234,564,051,1311,gb,United Kingdom,44,Jersey Telecom 1431 | 234,564,023,575,gb,United Kingdom,44,Vectofone Mobile Wifi 1432 | 234,564,015,351,gb,United Kingdom,44,Vodafone 1433 | 234,564,091,2335,gb,United Kingdom,44,Vodafone 1434 | 234,564,078,1935,gb,United Kingdom,44,Wave Telecom Ltd 1435 | 310,784,050,80,us,United States,1, 1436 | 310,784,880,2176,us,United States,1, 1437 | 310,784,850,2128,us,United States,1,Aeris Comm. Inc. 1438 | 310,784,640,1600,us,United States,1, 1439 | 310,784,510,1296,us,United States,1,Airtel Wireless LLC 1440 | 310,784,190,400,us,United States,1,Unknown 1441 | 312,786,090,144,us,United States,1,Allied Wireless Communications Corporation 1442 | 311,785,130,304,us,United States,1, 1443 | 311,785,030,48,us,United States,1,Americell PA3 LP 1444 | 310,784,710,1808,us,United States,1,Arctic Slope Telephone Association Cooperative Inc. 1445 | 310,784,380,896,us,United States,1,AT&T Wireless Inc. 1446 | 310,784,170,368,us,United States,1,AT&T Wireless Inc.2 1447 | 310,784,150,336,us,United States,1,AT&T Wireless Inc.3 1448 | 310,784,680,1664,us,United States,1,AT&T Wireless Inc.4 1449 | 310,784,070,112,us,United States,1,AT&T Wireless Inc.5 1450 | 310,784,560,1376,us,United States,1,AT&T Wireless Inc.6 1451 | 310,784,410,1040,us,United States,1,AT&T Wireless Inc.7 1452 | 310,784,980,2432,us,United States,1,AT&T Wireless Inc.8 1453 | 311,785,440,1088,us,United States,1,Bluegrass Wireless LLC 1454 | 311,785,810,2064,us,United States,1,Bluegrass Wireless LLC-2 1455 | 311,785,800,2048,us,United States,1,Bluegrass Wireless LLC-3 1456 | 310,784,900,2304,us,United States,1,Cable & Communications Corp. 1457 | 311,785,590,1424,us,United States,1,California RSA No. 3 Limited Partnership 1458 | 311,785,500,1280,us,United States,1,Cambridge Telephone Company Inc. 1459 | 310,784,830,2096,us,United States,1,Caprock Cellular Ltd. 1460 | 311,785,272,626,us,United States,1,Verizon Wireless 1461 | 311,785,288,648,us,United States,1,Verizon Wireless2 1462 | 311,785,277,631,us,United States,1,Verizon Wireless3 1463 | 311,785,482,1154,us,United States,1,Verizon Wireless4 1464 | 310,784,590,1424,us,United States,1,Verizon Wireless5 1465 | 311,785,282,642,us,United States,1,Verizon Wireless6 1466 | 311,785,487,1159,us,United States,1,Verizon Wireless7 1467 | 311,785,271,625,us,United States,1,Verizon Wireless8 1468 | 311,785,287,647,us,United States,1,Verizon Wireless9 1469 | 311,785,276,630,us,United States,1,Verizon Wireless10 1470 | 311,785,481,1153,us,United States,1,Verizon Wireless11 1471 | 310,784,013,19,us,United States,1,Verizon Wireless12 1472 | 311,785,281,641,us,United States,1,Verizon Wireless13 1473 | 311,785,486,1158,us,United States,1,Verizon Wireless14 1474 | 311,785,270,624,us,United States,1,Verizon Wireless15 1475 | 311,785,286,646,us,United States,1,Verizon Wireless16 1476 | 311,785,275,629,us,United States,1,Verizon Wireless17 1477 | 311,785,480,1152,us,United States,1,Verizon Wireless18 1478 | 310,784,012,18,us,United States,1,Verizon Wireless19 1479 | 311,785,280,640,us,United States,1,Verizon Wireless20 1480 | 311,785,485,1157,us,United States,1,Verizon Wireless21 1481 | 311,785,110,272,us,United States,1,Verizon Wireless22 1482 | 311,785,285,645,us,United States,1,Verizon Wireless23 1483 | 311,785,274,628,us,United States,1,Verizon Wireless24 1484 | 311,785,390,912,us,United States,1,Verizon Wireless25 1485 | 310,784,010,16,us,United States,1,Verizon Wireless26 1486 | 311,785,279,633,us,United States,1,Verizon Wireless27 1487 | 311,785,484,1156,us,United States,1,Verizon Wireless28 1488 | 310,784,910,2320,us,United States,1,Verizon Wireless29 1489 | 311,785,284,644,us,United States,1,Verizon Wireless30 1490 | 311,785,489,1161,us,United States,1,Verizon Wireless31 1491 | 311,785,273,627,us,United States,1,Verizon Wireless32 1492 | 311,785,289,649,us,United States,1,Verizon Wireless33 1493 | 310,784,004,4,us,United States,1,Verizon Wireless34 1494 | 311,785,278,632,us,United States,1,Verizon Wireless35 1495 | 311,785,483,1155,us,United States,1,Verizon Wireless36 1496 | 310,784,890,2192,us,United States,1,Verizon Wireless37 1497 | 311,785,283,643,us,United States,1,Verizon Wireless38 1498 | 311,785,488,1160,us,United States,1,Verizon Wireless39 1499 | 312,786,280,640,us,United States,1,Cellular Network Partnership LLC 1500 | 312,786,270,624,us,United States,1,Cellular Network Partnership LLC-2 1501 | 310,784,360,864,us,United States,1,Cellular Network Partnership LLC-3 1502 | 311,785,190,400,us,United States,1, 1503 | 310,784,230,560,us,United States,1,Cellular South Licenses Inc. 1504 | 310,784,030,48,us,United States,1, 1505 | 311,785,120,288,us,United States,1,Choice Phone LLC 1506 | 310,784,480,1152,us,United States,1,Choice Phone LLC-2 1507 | 310,784,630,1584,us,United States,1, 1508 | 310,784,420,1056,us,United States,1,Cincinnati Bell Wireless LLC 1509 | 310,784,180,384,us,United States,1,Cingular Wireless 1510 | 310,784,620,1568,us,United States,1,Coleman County Telco /Trans TX 1511 | 311,785,040,64,us,United States,1, 1512 | 310,784,006,6,us,United States,1,Consolidated Telcom 1513 | 310,784,060,1551,us,United States,1,Consolidated Telcom 1514 | 312,786,380,896,us,United States,1, 1515 | 310,784,930,2352,us,United States,1, 1516 | 311,785,240,576,us,United States,1, 1517 | 310,784,008,8,us,United States,1,Unknown 1518 | 310,784,080,128,us,United States,1, 1519 | 310,784,700,1792,us,United States,1,Cross Valliant Cellular Partnership 1520 | 311,785,140,320,us,United States,1,Cross Wireless Telephone Co. 1521 | 312,786,030,48,us,United States,1,Cross Wireless Telephone Co.2 1522 | 311,785,520,1312,us,United States,1, 1523 | 311,785,810,2064,us,United States,1,Cumberland Cellular Partnership 1524 | 311,785,800,2048,us,United States,1,Cumberland Cellular Partnership2 1525 | 311,785,440,1088,us,United States,1,Cumberland Cellular Partnership3 1526 | 312,786,040,64,us,United States,1,Custer Telephone Cooperative Inc. 1527 | 310,784,016,22,us,United States,1,Denali Spectrum License LLC 1528 | 310,784,440,1088,us,United States,1,Dobson Cellular Systems 1529 | 310,784,990,2448,us,United States,1,E.N.M.R. Telephone Coop. 1530 | 312,786,130,304,us,United States,1,East Kentucky Network LLC 1531 | 312,786,120,288,us,United States,1,East Kentucky Network LLC-2 1532 | 310,784,750,1872,us,United States,1,East Kentucky Network LLC-3 1533 | 310,784,009,9,us,United States,1,Edge Wireless LLC 1534 | 310,784,090,144,us,United States,1,Edge Wireless LLC 1535 | 310,784,610,1552,us,United States,1,Elkhart TelCo. / Epic Touch Co. 1536 | 311,785,210,528,us,United States,1, 1537 | 311,785,311,785,us,United States,1,Farmers 1538 | 311,785,460,1120,us,United States,1,Fisher Wireless Services Inc. 1539 | 311,785,370,880,us,United States,1,GCI Communication Corp. 1540 | 310,784,430,1072,us,United States,1,GCI Communication Corp.-2 1541 | 310,784,920,2336,us,United States,1,Get Mobile Inc. 1542 | 310,784,970,2416,us,United States,1, 1543 | 310,784,007,127,us,United States,1,Unknown 1544 | 311,785,250,592,us,United States,1,i CAN_GSM 1545 | 311,785,340,832,us,United States,1,Illinois Valley Cellular RSA 2 Partnership 1546 | 311,785,030,48,us,United States,1, 1547 | 312,786,170,368,us,United States,1,Iowa RSA No. 2 Limited Partnership 1548 | 311,785,410,1040,us,United States,1,Iowa RSA No. 2 Limited Partnership2 1549 | 310,784,770,1904,us,United States,1,Iowa Wireless Services LLC 1550 | 310,784,650,1616,us,United States,1,Jasper 1551 | 310,784,870,2160,us,United States,1,Kaplan Telephone Company Inc. 1552 | 311,785,810,2064,us,United States,1,Kentucky RSA #3 Cellular General Partnership 1553 | 311,785,800,2048,us,United States,1,Kentucky RSA #3 Cellular General Partnership2 1554 | 311,785,440,1088,us,United States,1,Kentucky RSA #3 Cellular General Partnership3 1555 | 311,785,440,1088,us,United States,1,Kentucky RSA #4 Cellular General Partnership4 1556 | 311,785,810,2064,us,United States,1,Kentucky RSA #4 Cellular General Partnership5 1557 | 311,785,800,2048,us,United States,1,Kentucky RSA #4 Cellular General Partnership6 1558 | 312,786,180,384,us,United States,1,Keystone Wireless LLC 1559 | 310,784,690,1680,us,United States,1,Keystone Wireless LLC-2 1560 | 311,785,310,784,us,United States,1,Lamar County Cellular 1561 | 310,784,016,22,us,United States,1,LCW Wireless Operations LLC 1562 | 310,784,016,22,us,United States,1,Leap Wireless International Inc. 1563 | 311,785,090,144,us,United States,1, 1564 | 310,784,040,64,us,United States,1,Matanuska Tel. Assn. Inc. 1565 | 310,784,780,1920,us,United States,1,Message Express Co. / Airlink PCS 1566 | 311,785,660,1632,us,United States,1, 1567 | 311,785,330,816,us,United States,1,Michigan Wireless LLC 1568 | 311,785,000,0,us,United States,1, 1569 | 311,785,390,912,us,United States,1, 1570 | 310,784,400,1024,us,United States,1,Minnesota South. Wirel. Co. / Hickory 1571 | 312,786,010,16,us,United States,1,Missouri RSA No 5 Partnership 1572 | 311,785,920,2336,us,United States,1,Missouri RSA No 5 Partnership2 1573 | 311,785,020,32,us,United States,1,Missouri RSA No 5 Partnership3 1574 | 311,785,010,16,us,United States,1,Missouri RSA No 5 Partnership4 1575 | 312,786,220,544,us,United States,1,Missouri RSA No 5 Partnership5 1576 | 310,784,350,848,us,United States,1,Mohave Cellular LP 1577 | 310,784,570,1392,us,United States,1,MTPCS LLC 1578 | 310,784,290,656,us,United States,1,NEP Cellcorp Inc. 1579 | 310,784,034,847,us,United States,1,Nevada Wireless LLC 1580 | 311,785,380,896,us,United States,1, 1581 | 310,784,600,1536,us,United States,1,New-Cell Inc. 1582 | 311,785,100,256,us,United States,1, 1583 | 311,785,300,768,us,United States,1,Nexus Communications Inc. 1584 | 310,784,130,304,us,United States,1,North Carolina RSA 3 Cellular Tel. Co. 1585 | 312,786,230,560,us,United States,1,North Dakota Network Company 1586 | 311,785,610,1552,us,United States,1,North Dakota Network Company2 1587 | 310,784,450,1104,us,United States,1,Northeast Colorado Cellular Inc. 1588 | 311,785,710,1808,us,United States,1,Northeast Wireless Networks LLC 1589 | 310,784,670,1648,us,United States,1,Northstar 1590 | 310,784,011,17,us,United States,1,Northstar 1591 | 311,785,420,1056,us,United States,1,Northwest Missouri Cellular Limited Partnership 1592 | 310,784,540,1344,us,United States,1, 1593 | 310,784,740,1856,us,United States,1, 1594 | 310,784,760,1888,us,United States,1,Panhandle Telephone Cooperative Inc. 1595 | 310,784,580,1408,us,United States,1,PCS ONE 1596 | 311,785,170,368,us,United States,1,PetroCom 1597 | 311,785,670,1648,us,United States,1,Pine Belt Cellular Inc. 1598 | 311,785,080,128,us,United States,1, 1599 | 310,784,790,1936,us,United States,1, 1600 | 310,784,100,256,us,United States,1,Plateau Telecommunications Inc. 1601 | 310,784,940,2368,us,United States,1,Poka Lambro Telco Ltd. 1602 | 311,785,540,1344,us,United States,1, 1603 | 311,785,730,1840,us,United States,1, 1604 | 310,784,500,1280,us,United States,1,Public Service Cellular Inc. 1605 | 312,786,160,352,us,United States,1,RSA 1 Limited Partnership 1606 | 311,785,430,1072,us,United States,1,RSA 1 Limited Partnership 1607 | 311,785,350,848,us,United States,1,Sagebrush Cellular Inc. 1608 | 311,785,030,48,us,United States,1,Sagir Inc. 1609 | 311,785,910,2320,us,United States,1, 1610 | 310,784,046,1135,us,United States,1,SIMMETRY 1611 | 311,785,260,608,us,United States,1,SLO Cellular Inc / Cellular One of San Luis 1612 | 310,784,320,800,us,United States,1,Smith Bagley Inc. 1613 | 310,784,015,351,us,United States,1,Unknown 1614 | 316,790,011,17,us,United States,1,Southern Communications Services Inc. 1615 | 310,784,002,2,us,United States,1,Sprint Spectrum 1616 | 312,786,190,400,us,United States,1,Sprint Spectrum 1617 | 311,785,880,2176,us,United States,1,Sprint Spectrum2 1618 | 311,785,870,2160,us,United States,1,Sprint Spectrum3 1619 | 311,785,490,1168,us,United States,1,Sprint Spectrum4 1620 | 310,784,120,288,us,United States,1,Sprint Spectrum5 1621 | 316,790,010,16,us,United States,1,Sprint Spectrum6 1622 | 310,784,031,799,us,United States,1,T-Mobile 1623 | 310,784,220,544,us,United States,1,T-Mobile2 1624 | 310,784,270,624,us,United States,1,T-Mobile3 1625 | 310,784,210,528,us,United States,1,T-Mobile4 1626 | 310,784,260,608,us,United States,1,T-Mobile5 1627 | 310,784,200,512,us,United States,1,T-Mobile6 1628 | 310,784,250,592,us,United States,1,T-Mobile7 1629 | 310,784,160,352,us,United States,1,T-Mobile8 1630 | 310,784,240,576,us,United States,1,T-Mobile9 1631 | 310,784,660,1632,us,United States,1,T-Mobile10 1632 | 310,784,230,560,us,United States,1,T-Mobile11 1633 | 310,784,300,768,us,United States,1,T-Mobile12 1634 | 310,784,280,640,us,United States,1,T-Mobile13 1635 | 310,784,330,816,us,United States,1,T-Mobile14 1636 | 310,784,800,2048,us,United States,1,T-Mobile15 1637 | 310,784,310,784,us,United States,1,T-Mobile16 1638 | 311,785,740,1856,us,United States,1, 1639 | 310,784,740,1856,us,United States,1,Telemetrix Inc. 1640 | 310,784,014,335,us,United States,1,Testing 1641 | 310,784,950,2384,us,United States,1,Unknown 1642 | 310,784,860,2144,us,United States,1,Texas RSA 15B2 Limited Partnership 1643 | 311,785,830,2096,us,United States,1,Thumb Cellular Limited Partnership 1644 | 311,785,050,80,us,United States,1,Thumb Cellular Limited Partnership2 1645 | 310,784,460,1120,us,United States,1,TMP Corporation 1646 | 310,784,490,1168,us,United States,1,Triton PCS 1647 | 312,786,290,656,us,United States,1,Uintah Basin Electronics Telecommunications Inc. 1648 | 311,785,860,2144,us,United States,1,Uintah Basin Electronics Telecommunications Inc.2 1649 | 310,784,960,2400,us,United States,1,Uintah Basin Electronics Telecommunications Inc.3 1650 | 310,784,020,32,us,United States,1,Union Telephone Co. 1651 | 311,785,220,544,us,United States,1,United States Cellular Corp. 1652 | 310,784,730,1840,us,United States,1,United States Cellular Corp.2 1653 | 311,785,650,1616,us,United States,1,United Wireless Communications Inc. 1654 | 310,784,038,911,us,United States,1,USA 3650 AT&T 1655 | 310,784,520,1312,us,United States,1,VeriSign 1656 | 310,784,003,3,us,United States,1,Unknown 1657 | 310,784,023,575,us,United States,1,Unknown2 1658 | 310,784,024,591,us,United States,1,Unknown3 1659 | 310,784,025,607,us,United States,1,Unknown4 1660 | 310,784,530,1328,us,United States,1,West Virginia Wireless 1661 | 310,784,026,623,us,United States,1,Unknown 1662 | 310,784,340,832,us,United States,1,Westlink Communications LLC 1663 | 311,785,150,336,us,United States,1, 1664 | 311,785,070,112,us,United States,1,Wisconsin RSA #7 Limited Partnership 1665 | 310,784,390,912,us,United States,1,Yorkville Telephone Cooperative 1666 | 748,1864,001,31,uy,Uruguay,598,Ancel/Antel 1667 | 748,1864,003,63,uy,Uruguay,598,Ancel/Antel 1668 | 748,1864,010,271,uy,Uruguay,598,Claro/AM Wireless 1669 | 748,1864,007,127,uy,Uruguay,598,MOVISTAR 1670 | 434,1076,004,79,uz,Uzbekistan,998,Bee Line/Unitel 1671 | 434,1076,001,1,uz,Uzbekistan,998,Buztel 1672 | 434,1076,007,127,uz,Uzbekistan,998,MTS/Uzdunrobita 1673 | 434,1076,005,95,uz,Uzbekistan,998,Ucell/Coscom 1674 | 434,1076,002,2,uz,Uzbekistan,998,Uzmacom 1675 | 541,1345,005,95,vu,Vanuatu,678,DigiCel 1676 | 541,1345,000,0,vu,Vanuatu,678,DigiCel2 1677 | 541,1345,001,31,vu,Vanuatu,678,SMILE 1678 | 734,1844,003,3,ve,Venezuela,58,DigiTel C.A. 1679 | 734,1844,002,47,ve,Venezuela,58,DigiTel C.A.2 1680 | 734,1844,001,1,ve,Venezuela,58,DigiTel C.A.3 1681 | 734,1844,006,111,ve,Venezuela,58,Movilnet C.A. 1682 | 734,1844,004,79,ve,Venezuela,58,Movistar/TelCel 1683 | 452,1106,007,127,vn,Viet Nam,84,Beeline 1684 | 452,1106,001,31,vn,Viet Nam,84,Mobifone 1685 | 452,1106,003,63,vn,Viet Nam,84,S-Fone/Telecom 1686 | 452,1106,005,95,vn,Viet Nam,84,VietnaMobile 1687 | 452,1106,008,143,vn,Viet Nam,84,Viettel Mobile 1688 | 452,1106,006,111,vn,Viet Nam,84,Viettel Mobile2 1689 | 452,1106,004,79,vn,Viet Nam,84,Viettel Mobile3 1690 | 452,1106,002,47,vn,Viet Nam,84,Vinaphone 1691 | 376,886,350,848,vi,Virgin Islands U.S.,1340,Cable & Wireless (Turks & Caicos) 1692 | 376,886,050,1295,vi,Virgin Islands U.S.,1340,Digicel 1693 | 376,886,352,850,vi,Virgin Islands U.S.,1340,IslandCom 1694 | 421,1057,004,79,ye,Yemen,967,HITS/Y Unitel 1695 | 421,1057,002,47,ye,Yemen,967,MTN/Spacetel 1696 | 421,1057,001,31,ye,Yemen,967,Sabaphone 1697 | 421,1057,003,63,ye,Yemen,967,Yemen Mob. CDMA 1698 | 645,1605,003,63,zm,Zambia,260,Cell Z/MTS 1699 | 645,1605,002,47,zm,Zambia,260,MTN/Telecel 1700 | 645,1605,001,31,zm,Zambia,260,Zain/Celtel 1701 | 648,1608,004,79,zw,Zimbabwe,263,Econet 1702 | 648,1608,001,31,zw,Zimbabwe,263,Net One 1703 | 648,1608,003,63,zw,Zimbabwe,263,Telecel 1704 | --------------------------------------------------------------------------------