Riconoscimento pc nella rete intranet

wolfland

Nuovo Utente
14 Lug 2015
16
0
1
Salve a tutti, come da titolo, dovrei realizzare un portale intranet in PHP e avrei bisogno di sapere se un utente che accede al portale fa parte o meno della rete intranet, quindi se si trova all'interno dell'azienda. C'è un modo per implementare questo controllo?
Grazie.
 

wolfland

Nuovo Utente
14 Lug 2015
16
0
1
con $_SERVER['REMOTE_ADDR'] recupero l'ip di chi si connette, ma mi serve sapere se quell'ip fa parte della intranet... cercavo uno script che facesse un controllo del genere
 

wolfland

Nuovo Utente
14 Lug 2015
16
0
1
Mmm... no a me non serve un programma "impacchettato" ma solo codice PHP che mi permette di sapere se l'IP di chi vuole accedere alla intranet ne fa parte o no. In poche parole, so l'IP dell'utente che accede ($_SERVER['REMOTE_ADDR']) e ora? Posso verificare se questo fa parte della mia rete? Come? Con cosa lo confronto?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se conosci i tuoi ip
PHP:
<?php
$ip_intranet=array('10.10.10.10','20.20.20');//se conosci quali sono gli ip del tuo intranet
if(in_array($_SERVER['REMOTE_ADDR'], $ip_intranet)){
	//è intranet
}else{
	//non è intranet
}
?>
però ora avviso un moderatore che se ne intende di reti in modo che se sa ti dia una risposta migliore
 

wolfland

Nuovo Utente
14 Lug 2015
16
0
1
Esattamente una cosa del genere mi serve... ora, l'array con gli indirizzi ip devono essere necessariamente scritti a mano (li recupero facendo un ipconfig sulla intranet?) nello script o esiste un modo di ricavarli in automatico?
Del tipo:

$ip_intranet=$_SERVER['RANGE DI INDIRIZZI INTRANET'];

e poi fare il confronto con l'IP che tenta l'accesso con l'if che hai proposto tu
 

Pieroz

Moderatore
Membro dello Staff
MOD
18 Lug 2012
553
3
18
Altino
Ciao a tutti,
Purtroppo di PHP ne capisco poco :( voi state troppo avanti! :p

Dal codice scritto ho comunque interpretato quello che volete fare.
Purtroppo bisognerebbe capire se il range il PHP lo interpreta bene.
Per identificare la propria intranet basta fare un ipconfig da command. Verrà fuori ad esempio
IP:192.168.1.x
Mask:255.255.255.0

Nelle configurazioni degli apparati di rete per identificare questo network è sufficiente scrivere 192.168.1.0/24 , ma non so se per il PHP è lo stesso!
 

wolfland

Nuovo Utente
14 Lug 2015
16
0
1
ok, quindi in definitiva, l'ip della intranet si può ottenere solo tramite ipconfig, da qui segnarmi a mano tutti gli indirizzi che butta fuori e inserirli in un array per il confronto.
Siccome non ho mai avuto a che fare con le reti, ipconfig sulla intranet, mi restituisce tutti gli ip? come faccio a sapere quali sono tutti gli ip di cui dispone la rete in oggetto? Cioè, ipconfig mi restituisce IP 192.168.1.0 192.168.1.1 192.168.1.2 ecc...? o mi restituisce un unico ip 192.168.1.x dove so che x va da 0 a 9 (quindi il range degli indirizzi IP che la rete supporta)? La rete che tipo di ip può avere? Nel senso può essere anche 192.168.xxx? se così, il range di xxx che valori può assumere?
Mi scuso per le domande forse banali, ma ripeto, di reti non sono ferrato.
 

Pieroz

Moderatore
Membro dello Staff
MOD
18 Lug 2012
553
3
18
Altino
Ciao,
Fai una cosa, fai ipconfig dal tuo PC e posta qui il risultato che ti aiuto io a capire quanti IP ha la tua rete! tranquillo!
 

Pieroz

Moderatore
Membro dello Staff
MOD
18 Lug 2012
553
3
18
Altino
Cerco di spiegarti...
Ogni devide di una rete deve avere un IP per lavorare in rete. Questo IP deve essere univoco non può essere ripetuto.
A seconda della grandezza della rete uno può scegliere la grandezza della network.
La storia qui diventa complicata però ti faccio solo qualche esempio di come si taglia "DI SOLITO" una rete.

In una rete home si usano gli ip 192.168.1.x. Al posto della x ci può essere un valore che va dal numero 1 al numero 255.
Per ogni gruppo di numeri di può usare un numero da 1 a 255, quindi la tua rete può avere anche 192.168.250.x.

Spero che fino a qui sia stato chiaro. le reti private possono usare solo alcune classi di ip, la 192.168 è l'unica che può essere usata privatamente da 192.168.1.1 a 192.168.255.255.
Tutti gli altri IP sono pubblici e non devono essere usati internamente!

Per identificare la grandezza della rete a questo punto bisogna segmentare. questo si fa con la maschera (subnet mask).
Se io scrivo 192.168.1.1 mask 255.255.255.0 signfica che gli unici IP accettati in quella rete sono dal 192.168.1.1 al 192.168.1.255

Questa network si può scrivere più semplicemente 192.168.1.0/24, perchè quando trovi 255.255.255.0 è un a/24. Qui si apre un altro dibattito! ma è meglio che ci fermiamo qui
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
pieroz è digiuno di php e io di reti, però potrei consigliarti di fare una prova
ti fai il seguente file php (chiamalo es prova_ip.php)
PHP:
<?php
echo "<pre>";
var_dump($_SERVER['REMOTE_ADDR']);
echo "</pre>";
?>
lo carichi sul server, vai su un pc della rete e lo richiami così vedi cosa ti restituisce
puoi andare su un altro e riprovare così vedi le differenze

poi, ma questo non lo so, se usando ipconfig ti restituisce molti ip con un po' di accorgimenti si può accelerare il semplice scriverli manina_manina uno ad uno
poi per vedere cosa ti restituisce l'ipconfig il sistema migliore è lanciarlo e guardare
 

wolfland

Nuovo Utente
14 Lug 2015
16
0
1
Allora, al momento sto lavorando in locale sulla mia macchina e non posso verificare ancora l'ip della intra...
Pieroz, sei stato molto chiaro, penso di aver capito la dinamica e la cosa mi fa quasi dubitare di aver capito :D
Quindi, mettiamo caso che con ipconfig ottenga un indirizzo 192.168.x.x, ora so che le x possono variare da 1 a 255 ed avere per cui una serie di indirizzi 192.168.50.120 192.168.22.30 e così via. In base a ciò, posso riempire l'array con tutti questi indirizzi, inserire da 192.168.1.1 a 192.168.255.255.
Ora, sarebbe interessante il discorso della subnet mask, nel senso che:
spero che ci sia un modo migliore e alternativo che scrivere a mano un array con tutti quegli indirizzi, sto pensando ad una cosa tipo, ok l'indirizzo ip è 192.168.x.x e la sub mask è questa 255.255.255.0 (oppure /24), quindi questo è l'array degli ip che possono essere accettati da questa rete.

$arrayIP=calcola_range($IP,$subMASK);
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao pieroz
scusa per capire meglio (e quindi trasformare in php) in una rete tutti gli ip sono caratterizzati da 192.168 giusto o ho capito male?
quindi basterebbe verificare l'esistenza del gruppo 192.168, da cui
PHP:
<?php
$ip=$_SERVER['REMOTE_ADDR'];
if(strpos($ip,"192.168") !== 0){//oppure != FALSE
	// è della rete
}else{
	//non è della rete
}
?>
 

Pieroz

Moderatore
Membro dello Staff
MOD
18 Lug 2012
553
3
18
Altino
gli ip privati possono essere da 192.168.1.1 a 192.168.255.255, quindi si il 192.168 c'è sempre.
Poi ci sono altri ip interni da 172.10.1.1 a 172.20.255.255 e tutta la 10.1.1.1 a 10.255.255.255... questi li ho sparati, non mi ricordo a memoria tutte le networks! :p

Comunque facciamo prima se si fa questo ipconfig su una macchina in quella rete. Fatto quello vi dico subito quanti IP ci sono su quella rete.

Le maschere funzionao a seconda di dove sta la x. 192.168.1.x (quindi da 192.168.1.1 a 192.168.1.255) maschera 255.255.255.0 oppure /24.
Altrimenti 192.168.x.x (quindi da 192.168.1.1 a 192.168.255.255) maschera 255.255.0.0 oppure /16...

Questo è il modo più semplice che mi viene in mente per spiegare le maschere!
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Problemi con il riconoscimento login. PHP 21
MarcoGrazia Riconoscimento del MIME Type attraverso il Magic number Snippet PHP 0
A [PHP] Riconoscimento Utente Loggato PHP 7
A riconoscimento sito da parte di google WordPress 6
V Mancato riconoscimento HD esterno USB Hardware 0
I login due volte per il riconoscimento PHP 12
asevenx problema riconoscimento ip tra form e database diversi PHP 1
helpdesk riconoscimento acquisto PHP 15
S Riconoscimento Browser Javascript 1
I Apertura e scrittura iframe, il riconoscimento delle porzioni! Link cambio stile. Javascript 0
Shyson Regex che trova la parola nella pagina jQuery 6
S impostare un testo e una img nella stessa riga con jsPDF Javascript 0
B margini e padding nella visualizzazione mobile HTML e CSS 6
L titolo del sito nella pagina di ricerca di google SEO e Posizionamento 2
A Copertura: indicizzata, non inviata nella mappa del sito XML 1
Alex_70 Conteggio nella query PHP 0
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
Alex_70 Button non funziona nella form PHP 2
M Inserire variabile nella value di una hidden PHP 3
mazman mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella PHP 13
R anomalia nella visualizzazione tabella mysql MySQL 1
Tommy03 Due menù nella stessa app Sviluppo app per Android 0
F [Javascript] Conflitto tra più form nella stessa pagina Javascript 1
A [CERCO] Instagram account da comprare nella nicchia CANI & GATTI o ANIMALI DOMESTICI Compravendita siti e domini 1
P [PHP] Contare quante volte uno stesso id si ripete nella tabella PHP 12
Shyson Nome che appare nella serp SEO e Posizionamento 3
I [Woocommerce][E-commerce] Come togliere la sezione iva nella fatture E-Commerce 1
M [PHP] Come display data nella stessa pagina PHP 4
L Mi trovo nell'impossibilità di eliminare un record nella tabella Database 1
I Url rewrite con .htaccess funziona ma poi mostra indirizzo "reale" nella barra di navigazione Apache 1
M [PHP] Mantenere variabile con datagrid nella pagina 2 PHP 1
G Inserzione script nella pagina html per jquery jQuery 8
Shyson Smoot scrolling jQuery nella pagina jQuery 0
R [WordPress] [HTML] Variare dimensione logo rimanendo centrato nella fascia di testa: come? WordPress 16
C [PHP] Campo facoltativo del form che non deve risultare nella risposta se negativo PHP 6
loois Ho un problema nella creazione di un sistema di commenti in PHP PHP 11
G [RISOLTO][Javascript] aggiungere elemento ad array definito nella finestra madre da popup Javascript 4
S [Javascript] [HTML] problema nella stampa degli elementi della pagina Javascript 3
D [ASP.Net] Non elencare nella select i duplicati dallo split Classic ASP 9
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
G sql.txt problemi nella creazione delle tabelle Database 0
R Può secondo voi un sito essere nella seconda pagina e non fare traffico? SEO e Posizionamento 3
M [PHP] Disposizione record nella pagina PHP 2
P [HTML] scrivere il titolo di una pagina nella pagina stessa, si può? HTML e CSS 3
K Server per sito di annunci: aiuto nella scelta Hosting 4
M Collegare due NVR nella stessa rete IP Cam e Videosorveglianza 0
M ripristinare totali nella modalità edit post Javascript 0
F Javascript che funziona solo nella home page e non nelle altre pagine Javascript 1
M Caratteri HTML salvati nella tabella PHP 4
felino [Image Transform] Errore nella generazione delle immagini croppate PHP 0

Discussioni simili