Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Indirizzo ip al di fuori del browser

    Salve ragazzi, sto cercando di fare uno scriptino in PHP che non deve essere incluso in una pagina web ma che deve solo essere utilizzato da linea di comando, es:

    > php script.php

    Mi serve per essere eseguito ogni tot dal mio pc con linux.

    Ora però c'è un piccolo problema tecnico, mi serve di sapere il mio indirizzo ip remoto.

    Sarebbe una boiata ($REMOTE_ADDR o $_SERVER["REMOTE_ADDR"]) ma c'è un piccolo problema di fondo...

    Lo script gira stand-alone, non tramite apache... quindi non esistono per lui le constanti d'ambiente e non mi restituisce una fava....


    Quindi vi chiedevo, esiste una funzione (e non costante) che mi restituisca l'indirizzo ip remoto?

    Grazie

    P.S. in rete ho cercato, ma l'asino casca sempre sulle costanti... possibile che non sia fattibile fare uno script secco?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora, ti rispondo con quel che ne so di java su argomento simile: in java se chiedi gli indirizzi e nomi delle interfacce Network ottieni sempre gli indirizzi locali, il che chiaramente non è detto (anzi difficilmente) corrisponde all'indirizzo ip che ti viene assegnato in internet. Per risolvere (o meglio aggirare) si sceglie una di quelle pagine online che ti dicono il tuo indirizzo ip e si fa il parsing dell'indirizzo così come appare nel codice html della pagina. In altre parole, in java si lavora di socket. Non so se PHP abbia un modo diverso per aggirare il problema, tramite qualche variabile o che (ma da quel che dici no), per cui lavorerei di socket anche in php

    Siti che danno l'indirizzo in internet della tua macchina sono ad esempio

    http://www.ip-adress.com/
    http://www.myip.dk/

    e migliaia di altri.
    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Purtroppo la situazione è molto più incasinata di quanto credessi.

    E' tutta stamattina che cerco possibili funzioni php in tal senso o comandi linux, ma niente...

    Il sistema più attendibile che mi viene in mente è il seguente:

    Esiste un comando linux da shell che si chiama links, apre una pagina web in formato solo testo.

    Si può usare un'opzione di links, tale -dump, che invece di aprire un'interfaccia dinamica con il sito ti stampa a video sulla shell il contenuto solo testo della pagina.

    Poi mettici che usando il comando php mi sembra di aver visto che accetta, dopo il nome della pagina php, anche degli argomenti (devo approfondire).

    In questo modo posso prendere come argomenti il risultato del -dump di links, a tal proposito posso farmi una pagina php che giri sul server apache per farmi restituire sto benedetto indirizzo, poi lo passo come argomento alla pagina script e così ne faccio quello che voglio.

    Poi mi sveglio tutto sudato

  4. #4
    E quì casca l'asino, purtroppo uno script contenente $_SERVER["REMOTE_ADDR"] eseguito in locale da l'indirizzo locale, ma porc.

    Cmq il passaggio di argomenti funziona

    php pagina.php argomento

    si richiama con $argv[], partendo però da 1, perchè lo 0 è pagina.php

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Prova questo
    codice:
    <?php
    $host = "myip.dk";
    $fp = fsockopen ($host, 80, $errno, $errstr, 30);
    if (!$fp) {
       echo "$errstr ($errno)
    \n";
    } 
    else {
      fputs ($fp, "GET / HTTP/1.0\r\nHost: ".$host."\r\n\r\n");
      $buffer = "";
      while (!feof($fp)) {
        $buffer .= fgets ($fp,128);
      }
      fclose ($fp);
    }
    preg_match_all("/<title>.*?<\/title>/i", $buffer, $ris);
    echo (str_replace(array("<title>", "</title>", "Your IP: "), "", $ris[0][0]));
    ?>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Tnx, ma cmq penso di aver trovato una soluzione abbastanza buona.

    Ho una home che legge pure i php, quindi il file che mi stampa $_SERVER["REMOTE_ADDR"] lo metto lì, così ho risolto il problema del locale.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.