dal 2015 - visita n. 3179
php socket parte 5
php socket parte 5

 

Scansione delle porte e browser come client

In tutti gli esempi precedenti abbiamo usato il terminale telnet per connettersi ai servizi dei server. E' arrivato adesso il momento di sperimentare un poco con il tipico client usato prevalentemente dagli utenti di un computer: il browser.

Immaginiamo di voler costruire uno script che controlli le attività di un server su un certo numero di porte conosciute. Ricordiamo allora velocemente alcuni dei servizi più utilizzati ed i loro numeri di porta predefiniti.

ServizioPortaDescrizione
ftp21 File Transfer Protocol - Condivisione di file tra computer.
ssh22 Secure SHell - Protocollo sicuro per la condivisione di dati ed esecuzione di comandi.
smtp25 Simple Mail Transfer Protocol - Protocollo su codice ASCII per l'invio della posta.
http80 HyperText Transfer Protocol - Trasmissione di informazioni su Web.
pop3110 Post Office Protocol vers. 3 - Protocollo per la ricezione della posta.
ssl443 Secure Socket Layer - Protocollo di sicurezza per link crittografati tra client e server.
cups631 Common Unix Printing System - Spooler di stampa con funzione di print server.
mysql3306 Server per la gestione di database relazionali.

Lo script, in questo caso, interrogherà il server locale localhost alla ricerca di informazioni relative all'attività dei servizi riportati nella tabella. L'obiettivo viene raggiunto con una pagina web scritta in php ed html, memorizzata nella classica directory public_html, e che viene avviata dal browser del computer.

Esecuzione dello script

Dopo aver salvato il codice precedente nella cartella public_html dandogli il nome testserver.php, lo possiamo mandare in esecuzione tramite il browser all'indirizzo: localhost/~user/testserver.php, dove user è il nome dell'utente che ha effettuato il login. Un possibile output è rappresentato dalla tabella seguente.


Servizi attivi sul server: localhost

ftp ssh smtp http pop3 ssl cups mysql
non attivo attivo non attivo attivo non attivo non attivo attivo attivo

Tutto il lavoro, praticamente, viene svolto dalla funzione fsockopen() alla quale si passano di volta in volta il nome del server ed il numero della porta interessata. Per comodità la funzione fsockopen viene gestita dentro la funzione di servizio testHost() che, su richiesta, provvede a fornire il responso sotto forma di una determinata stringa colorata che viene visualizzata all'interno delle celle della tabella.

Come al solito l'esercizio costituisce soltanto un semplice punto di partenza per sperimentazioni più articolate. Nella soluzione proposta, volutamente, quasi nulla è stato dedicato all'estetica della presentazione privilegiando, invece, gli aspetti funzionali dello script.

Webmin, per esempio, è un software che permette di gestire un computer tramite interfaccia web (all'indirizzo http://localhost:10000). L'accesso è limitato agli utenti del sistema e permette di gestire la macchina da un punto di vista hardware e software. Il pacchetto è indirizzato ad amministratori e sistemisti, ma può risultare utile anche su computer client. Può gestire svariati aspetti del sistema, inclusi gli eventuali server Apache, MySQL e le impostazioni di PHP; inoltre è un programma modulare che può, quindi, essere espanso con dei moduli appositi per la gestione di uno specifico servizio.


Un semplicissimo ping

L'esempio seguente mostra come realizzare un semplicissimo emulatore del comando ping azionabile attraverso l'input in un form del nome del dominio da sottoporre a verifica.

Esecuzione dello script

Dopo aver salvato il codice precedente nella cartella public_html dandogli il nome ping.php, lo possiamo mandare in esecuzione tramite il browser all'indirizzo: localhost/~user/ping.php, dove user è il nome dell'utente che ha effettuato il login.


Punto della situazione

In questa sezione abbiamo imparato come:


















Menù
Introduzione
Ambiente di sviluppo
intro php-01
tag e commenti php-02
variabili e tipi php-03
operatori php-04
php IF esercizi
php FOR esercizi
php objects intro
php objects parte 1
php objects parte 2
php objects parte 3
php objects parte 4
php objects parte 5
CLIL
php socket intro
php socket parte 1
php socket parte 2
php socket parte 3
php socket parte 4
php socket parte 5
php socket parte 6
php socket extra
linux netcat


MiniGuida PHP
Guida Ufficiale PHP (en)
Form Base
Flat DataBase
Pagine Protette
mySQL



La ragione si fa adulta e vecchia; il cuore resta sempre ragazzo.
Ippolito Nievo

Valid CSS!
pagina generata in 0.003 secondi