Il linguaggio di programmazione PHP
 

Problemi per gethostbyaddr($ip) su sito intranet

Marco 13 Gen 2017 23:02
Salve, ho un problema abbastanza curioso su una intranet.
L'applicazione è strutturata per consentire l'accesso solamente su alcune
postazioni. Il controllo è duplice: sull'IP (statico) e sul nome host.
Saltuariamente, anche a distanza di poche decine di minuti senza che sia stato
spento o riavviato il pc, alcuni utenti non riescono ad accedere alle risorse
del sito.
Spulciando i log ho notato che la variabile ricavata con:
$host = gethostbyaddr($ip);
non fornisce sempre lo stesso risultato.
Delle volte produce, per esempio, "HOST1", mentre delle altre produce
"HOST1.DOMINIO". Dove "HOST1" è effettivamente il nome host della macchina, e
"DOMINIO" è effettivamente il nome del dominio di appartenenza.
Il codice, manco a dirlo, è sempre lo stesso. Ma il risultato è sempre
imprevedibile.
Qualcuno è a conoscenza del problema e sa come risolverlo?
Grazie.
fmassei@gmail.com 14 Gen 2017 00:18
On Friday, January 13, 2017 at 5:02:24 PM UTC-5, Marco wrote:
> Salve, ho un problema abbastanza curioso su una intranet.
> L'applicazione è strutturata per consentire l'accesso solamente su alcune
> postazioni. Il controllo è duplice: sull'IP (statico) e sul nome host.
> Saltuariamente, anche a distanza di poche decine di minuti senza che sia stato
> spento o riavviato il pc, alcuni utenti non riescono ad accedere alle risorse
> del sito.
> Spulciando i log ho notato che la variabile ricavata con:
> $host = gethostbyaddr($ip);
> non fornisce sempre lo stesso risultato.
> Delle volte produce, per esempio, "HOST1", mentre delle altre produce
> "HOST1.DOMINIO". Dove "HOST1" è effettivamente il nome host della macchina,
> e "DOMINIO" è effettivamente il nome del dominio di appartenenza.
> Il codice, manco a dirlo, è sempre lo stesso. Ma il risultato è sempre
> imprevedibile.
> Qualcuno è a conoscenza del problema e sa come risolverlo?
>

Evidentemente il reverse lookup chiede a due DNS diversi o, se ce n'è uno solo,
non ha i record fissi ma si aggiorna da sè in qualche modo (bisognerebbe sapere
qualche dettaglio su com'è fatta la rete per essere sicuri).

Lato PHP, se il problema è solo il formato nome[.dominio] fai solo strip del
dominio dalla stringa, se presente.

In realtà non vedo l'utilità di fare check sullo hostname, a dir la verità.

Ciao!
Marco 15 Gen 2017 10:14
Premetto che non sono un esperto. Il sito sta su un server virtuale Apache
(uno dei pc sotto dominio), quindi diverso dal server di dominio. Il motivo
del check anche sull'hostname è questo: mentre l'ip statico può essere
modificato arbitrariamente dall'utente, per fare altrettanto sull'hostname è
necessario l'amministratore. Magari sono io a sbagliare qualcosa. In realtà
vorrei proprio evitare di intervenire in modo s*****o (mediante manipolazione
della stringa in php). Dato che non sono io l'amministratore della rete, che
genere di operazioni dovrei fare? Ho già provato a pingare il server
virtuale dagli altri pc, sia con l'ip che con l'hostname. Ma ho avuto
risposta in entrambe i modi.
Leonardo Serni 15 Gen 2017 12:00
On Sun, 15 Jan 2017 01:14:17 -0800 (PST), Marco <marcosol@tiscali.it> wrote:

>Premetto che non sono un esperto. Il sito sta su un server virtuale Apache
>(uno dei pc sotto dominio), quindi diverso dal server di dominio. Il motivo
>del check anche sull'hostname è questo: mentre l'ip statico può essere
>modificato arbitrariamente dall'utente, per fare altrettanto sull'hostname è
>necessario l'amministratore. Magari sono io a sbagliare qualcosa.

Che cosa vuoi controllare?

* se l'utente è davvero lui: beh, user e password, oppure HTTPS e client
certificate.

* se la macchina è davvero lei: sulla stessa sottorete, puoi controllare
il MAC addr.

Altri controlli non si possono fare.

Per altro, se l'utente può cambiare IP, può cambiare anche hostname (e -
quasi sicuramente - il MAC).

Io mi contenterei di user e password.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
fmassei@gmail.com 15 Gen 2017 16:38
On Sunday, January 15, 2017 at 4:14:18 AM UTC-5, Marco wrote:
> Premetto che non sono un esperto. Il sito sta su un server virtuale Apache
> (uno dei pc sotto dominio), quindi diverso dal server di dominio. Il motivo
> del check anche sull'hostname è questo: mentre l'ip statico può essere
> modificato arbitrariamente dall'utente, per fare altrettanto sull'hostname è
> necessario l'amministratore. Magari sono io a sbagliare qualcosa. In realtà
> vorrei proprio evitare di intervenire in modo s*****o (mediante manipolazione
> della stringa in php). Dato che non sono io l'amministratore della rete, che
> genere di operazioni dovrei fare? Ho già provato a pingare il server
> virtuale dagli altri pc, sia con l'ip che con l'hostname. Ma ho avuto
> risposta in entrambe i modi.
>

Come ha già detto Leonardo, se vuoi essere indipendente dalla topologia della
rete controlla solo user/pass. Se puoi gestire il server apache i certificati
client sono un'altra alternativa comune per la intranet. Se puoi gestire anche
la rete un'ulteriore alternativa è un servizio di autenticazione dedicato
(stile
LDAP, per capirci).

Ciao!

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione PHP | Tutti i gruppi | it.comp.www.php | Notizie e discussioni php | Php Mobile | Servizio di consultazione news.