Comment faire la difference avec script php entre reseau et pc ?

pascal -  
 pascal -
Bonjour,

Je me demande bien comment faire un script php sur mon site pour voir si les visiteurs viennent d'un reseau commercial compose de plusieurs ordinateurs en reseau ou d'un ordinateur personnel via un hebergeur .
et je vous remercie par avance.

mr pascal

1 réponse

  1. brupala Messages postés 111154 Date d'inscription   Statut Membre Dernière intervention   14 451
     
    Salut,
    certainement qu'un whois sur l'adresse ip devrait aider :
    https://www.frameip.com/whois/

    et ... Voili Voilou Voila !
    0
    1. pascal
       
      pour trouver l'adresse-ip adresse ip il y a un script plus simple en fouinant et qui fonctionne sans rien comprendre :

      <?
      function detectip()
      {
      // Récupération de l'ip du visiteur
      if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
      {
      $ip =$_SERVER['HTTP_X_FORWARDED_FOR'];
      }
      elseif(isset($_SERVER['HTTP_CLIENT_IP']))
      {
      $ip = $_SERVER['HTTP_CLIENT_IP'];
      }
      else
      {
      $ip = $_SERVER['REMOTE_ADDR'];
      }
      return $ip;
      {
      $port = $_SERVER['SERVER_PORT'];
      }
      return $port;
      }
      ?>
      (euh les deux dernieres lignes pour le port ne fonctionne pas : ca vient de moi :)


      Cela m'a donner une autre idee pour eliminer les gros site et serveurs il faut peut etre mieux faire une selection des ports ouverts necessaires au minimum pour un pc standard cad:
      tcp 80
      tcp 8081
      tcp 81
      tcp 443
      tcp 25
      tcp 587
      tcp 143
      tcp 110
      tcp 993
      tcp 995
      tcp 3306
      tcp 53
      tcp 8080
      tcp 20
      tcp 21
      tcp 22
      udp 53

      mais comment faire un script php pour scanner les ports avec ce filtre "standard" et eliminer les gros serveurs des qu'il y a un port qui n'appartient pas a ce modele ??
      je suis debutant en php , j'ai trouve peut etre un debut pour commencer mais je suis completement depassé par la gestion du"creating socket" ??? :


      <?php
      // Main Script begins here
      error_reporting(~E_ALL);
      //ip port range and ip
      $host=$_POST['ip'];
      $from = $_POST['from']; //48 connections supported for now, change php.ini default_socket_timeout for more
      $to = $_POST['to'];
      //validation
      if (empty($_POST["ip"]) || empty($_POST['from']) || empty($_POST['to']))
      {
      echo"<b> Incomplete data, Go back! </b>";
      }
      elseif (!(filter_var($host, FILTER_VALIDATE_IP,FILTER_FLAG_IPV4)))
      {
      echo "<b>This IP address is not valid ! </b>";
      }
      elseif (!(is_numeric($from)) || !(is_numeric($to)))
      {
      echo "<b>Entered data is not a Port numeber</b>";
      }
      elseif ($from > $to || $from==$to)
      {
      echo "<b>Please enter lower value in the <i>FROM</i> field !</b>";
      }
      else
      {
      echo "<br><b><u>Scanned IP/Host : $host </u><br><u><i>List of Open Ports:</i></u></b><br>";

      //Creating Socket
      $socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP);
      for($port = $from; $port <= $to ; $port++)
      {
      //connect to the host and port
      $connection = socket_connect($socket , $host , $port);
      if($connection)
      {
      //display port open warning on connect
      echo "port $port Open (Warning !) <img src='warning.png' height=30px width=30px alt='open port'> ".'<br>';
      //close the socket connection
      socket_close($socket);
      //Create a new since earlier socket was closed , we need to close and recreate only when a connection is made
      //otherwise we can use the same socket
      $socket = socket_create(AF_INET , SOCK_STREAM , SOL_TCP);
      }
      else
      {
      }
      }
      }

      ?>
      0
    2. brupala Messages postés 111154 Date d'inscription   Statut Membre Dernière intervention   14 451
       
      Pourquoi scanner les ports ?
      ça ne peut rien apporter:
      la plupart des entreprises sont derrière un proxy http.
      Tu pars sur un bien mauvais principe.
      0
    3. pascal
       
      C'est peut etre idiot mais un proxy ca fonctionne sur quel port ?
      0
    4. pascal
       
      un peu par hasard en fouinant, j'ai remarque que le port 7 etait echo et que proxy ou pas il doit bien exister a la difference d'un pc standard , non ?
      0
    5. brupala Messages postés 111154 Date d'inscription   Statut Membre Dernière intervention   14 451
       
      echo est peut-etre juste ouvert sur le routeur.
      un proxy utilise n'importe quel port vers le web , tout comme ton navigateur en port source, fais un netsat -n sur ton PC et sur un proxy en sortie vers le net, tu auras la même chose.
      à l'intérieur de son réseau, par contre, il va écouter sur un port défini par l'admin, en général 3128 ou 8080
      0