czwartek, 7 czerwca 2012

Sprawdzanie nazwy sieci podanego numeru telefonu

Napisałem dziś z nudy, prosty i szybki skrypt do sprawdzania w jakiej sieci jest podany numer telefonu. Na dzień dzisiejszy obsługiwane sieci to: 36i6, Aster, Heyah, iPlus, Orange, Play, Plus, Red Bull Mobile, T-Mobile, TuBiedronka
Nie jest to coś skomplikowanego, ale jest to częścią innego projektu, i być może komuś może się przydać ;] Poniżej kod:


<?php
 

/*
Skrypt sprawdzający nazwę sieci podanego numeru telefonu
autor: snup [ snup.php@gmail.com ; http://snup1.blogspot.com ] 
*/ 
  
   function nazwa_sieci($nr)
   {
       switch($nr)
       {

           case 0:
              echo '36i6';                 
           break;

           case 1:
              echo 'Aster';                 
           break;

           case 2:
              echo 'Heyah';                 
           break;

           case 3:
              echo 'iPlus';                 
           break;

           case 4:
              echo 'Orange';                 
           break;

           case 5:
              echo 'Play';                 
           break;

           case 6:
              echo 'Plus';                 
           break;

           case 7:
              echo 'Red Bull Mobile';                 
           break;

           case 8:
              echo 'T-Mobile';                 
           break;

           case 9:
              echo 'TuBiedronka';                 
           break;

       }
       echo "<br><br><br><br><br>";
   }

   $tab[0] = array( 725, 726 );
   $tab[1] = array( 7805, 7806 );
   $tab[2] = array( 7870, 7871, 7872, 7873, 7874, 7875, 7878, 7879, 788, 880, 8841, 8842, 886, 888, 889 );
   $tab[3] = array( 887 );
   $tab[4] = array( 50, 51, 7890, 7891, 7892, 7893, 7894, 797, 798 );
   $tab[5] = array( 530, 531, 533, 534, 535, 5360, 5361, 5362, 5363, 5364, 5365, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 6900, 6908, 6909, 7290, 729, 790, 791, 792, 793, 794, 7950, 7956, 7957, 7958, 7959, 7991, 7992, 7993, 7994, 7995, 8812, 8813, 8814, 8815, 8816, 8817, 8830, 8831, 8832, 8834, 8835, 8836, 8837, 8839, 8840, 8843, 8846, 8847, 8848, 8849  );
   $tab[6] = array( 601, 603, 605, 607, 609, 661, 663, 665, 667, 669, 691, 693, 695, 697, 721, 7220, 7221, 7222, 7223, 7226, 7227, 723, 724, 781, 782, 7830, 7831, 7832, 7834, 7835, 7836, 7837, 7838, 7839, 785, 885 );
   $tab[7] = array( 6666 );
   $tab[8] = array( 532, 538, 539, 600, 602, 604, 606, 608, 660, 662, 664, 6660, 6661, 6662, 6663, 6664, 6665, 6667, 6668, 6669, 668, 692, 694, 696, 698, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 784, 7876, 7877, 7951, 7952, 7953, 7954, 7955, 8810, 8818, 8819, 8833 );
   $tab[9] = array( 7272, 7273, 8822 );

   if(isset($_POST['nr']))
   {
       $nr = (int)$_POST['nr'];
       if(strlen($nr)!=9)
       {
          echo "<strong>Podales nieprawidlowy numer!</strong><br><br><br><br><br>";
       }
       else
      {
          $poprawne = 0;
          for($i=0;$i<10;$i++)
          {
              $ilosc = count($tab[$i]);
              for($j=0;$j<$ilosc;$j++)
              {
                  $ile = strlen($tab[$i][$j]);
                  $wynik = substr($nr, 0, $ile);
                  if($wynik==$tab[$i][$j])
                  {
                      echo "<strong>Nazwa sieci podanego numeru telefonu to: </strong>";
                      nazwa_sieci($i);
                      $poprawne = 1;
                  }
              }
          }
          if($poprawne!=1)
          {
              echo "<strong>Podałes numer ktorego nie obsługuje ten skrypt!</strong><br><br><br><br><br>";
          }
      }
   }

?>

<html>
Skrypt sprawdzajacy nazwe sieci wybranego numeru telefonu.<br>
Obslugiwane sieci to: <strong>36i6, Aster, Heyah, iPlus, Orange, Play, Plus, Red Bull Mobile, T-Mobile, TuBiedronka</strong><br><br>
Podaj 9-cio cyfrowy numer telefonu komórkowego ( <i>bez prefix</i> )
<form action="" method="POST"/>
<input type="text" name="nr"/>
<input type="submit" value="sprawdz"/>
</form>
</html>

4 komentarze:

  1. Witaj.
    Po pierwsze: "komurkowego" ;]
    Po drugie: chyba nie wziąłeś pod uwage tego, że numery można przenosić pomiędzy sieciami i wtedy nie dojdziesz do tego do której sieci dany numer należy.

    OdpowiedzUsuń
  2. Dzięki za te drobną uwagę co do ortografii. Tego drugiego nie wziąłem pod uwagę, bo jak napisałeś "nie dojdzie się". Zrobiłem tylko coś takiego, co oferują niektóre strony WWW. Sprawdzana jest oryginalna sieć numeru telefonu.

    OdpowiedzUsuń
  3. Skoro nie zmieniasz indeksów w tablicy $tab tj, np pierwszy element nie ma klucza - $tab['trolololo'], etc, oraz zachowana jest kolejność, to nie ma sensu ich numerowania ($tab[0], $tab[1]).

    Po 2 function nazwa_sieci($nr) {} - błagam :)

    No, ale sam pomysł OK, nie biorąc oczywiście pod uwagę tego o czym napisał Anonimowy

    OdpowiedzUsuń
  4. Hmm, lepiej podpiąć się pod kogoś, kto ma punkt styku z operatorami. Przykład wykorzystania takiej apki to jakasiec.pl. Idzie do nich wysłać request po http i otrzymać wynik. Oczywiście pewnie to nie przejdzie przy większej ilości zapytań z danego IP, bo to zazwyczaj usługi płatne.

    W komercyjnym wykorzystaniu można np skorzystać z HLR/MNP z np 0,5gr (cena z smsapi.pl) od zapytania (horrendalna stawka jak masz duży ruch według mnie ), ale jak puszczasz ruch telekomunikacyjny to lepiej mieć pewność, że gość nie dzwoni do droższej sieci ;)

    OdpowiedzUsuń