Back to top

Autore Topic: ip rete  (Letto 3902 volte)

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
ip rete
« il: 18 Ott 2011, 14:42:18 »
Ciao a tutti, vorrei chiedervi una cosa!

C'è per caso un componente che riconosca un particolare range di indirizzi ip?

A me servirebbe far aprire una pagina in una diversa scheda agli utenti di una determinata fascia di  rete in una intranet!

Come potrei fare?!

Ossia: il modulo o componente riconosce l'ip e apre automaticamente la pagina!

Oppure creare uno script in php che faccia ciò.....

Oppure mettere 2 home page all'apertura di I.E., ma il problema di ciò è che gli utenti hanno win2K e quindi I.E. 6 e aprire 2 home non me lo permette!

Aiutatemi per favore!

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #1 il: 18 Ott 2011, 16:45:04 »
Non saprei dirti se esistono componenti o plugin che gestiscono quello che ti serve, tuttavia in php risulta abbastanza semplice da fare.


Per lavoro ogni tanto mi capita di dover gestire range di ip e associarli ad una certa azione, dipende quanto è grande e complicato sto range ma è comunque fattibile con un piccolo script php...
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #2 il: 18 Ott 2011, 21:55:40 »
Il problema è lo script!
Non sono tanto esperto in scrittura.....

Te ne sarei grato se mi aiutassi!

La rete è quasi intera....

10.10.10.0 / 10.10.10.255

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #3 il: 18 Ott 2011, 22:24:29 »
E' il caso più semplice, ora non ho il codice sottomano comunque se hai tempo e voglia puoi provare 2 vie.


- La prima è:


Codice: [Seleziona]

$ip_reale = $_SERVER['REMOTE_ADDR'];
$trovato = false;


for($i=0;$i<256;$i++){


$ip_calc = "10.10.10.".$i;


if($ip_calc==$ip_reale)
$trovato = true;
}


Successivamente farai un controllo sull'if $trovato == true e farai il codice per gli utenti nel range ip.


Altrimenti la seconda opzione (che preferisco) è:


Codice: [Seleziona]

$min_long = ip2long("10.10.10.0");
$max_long = ip2long("10.10.10.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;


if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;


Altrimenti se hai voglia prova questa tecnica :)
http://forums.digitalpoint.com/showthread.php?t=67344
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #4 il: 18 Ott 2011, 22:32:25 »
e il link del sito da se l'ip è quello indicato dove lo meto?

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #5 il: 18 Ott 2011, 22:34:34 »
e il link del sito da se l'ip è quello indicato dove lo meto?


eh?


Se intendi il codice da fare se l'ip è nel range mettilo dove ti serve, non lo so. Ad esempio se vuoi farlo all'apertura mettilo sull'index.php del template, come ti ho detto prima fai un controllo php sulla variabile $trovato se è uguale a true, nel caso fa il codice sennò fa altro.
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #6 il: 18 Ott 2011, 22:55:25 »
mi spiego meglio!

Io utente, apro internet explorer
si apre l'ome page es. www.sito1.it
all'apertuta del sito1.it vorrei che si aprisse automaticamente www.sito2.it per gli utenti di quel range ip

Mi son riuscito a spiegare meglio!?

 ;D

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #7 il: 18 Ott 2011, 23:00:37 »
Codice: [Seleziona]
window.open('http://www.sito2.com','Sito 2', 'width=300,height=200,left=10,top=10')

Fai questo metodo javascript nel load della pagina dopo aver controllato con php se l'utente è nel range ip giusto. Controlla che i popup non siano bloccati però.
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #8 il: 18 Ott 2011, 23:11:48 »
quindi

questo
window.open('http://www.sito2.com','Sito 2', 'width=300,height=200,left=10,top=10')
lo metto nel sto 1

e l'altra roba la metto nel sito 2

giusto?

Domattina provo e ti faccio sapere!

Grazie 100000000000000000000000000000000000000 000000000


Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #9 il: 18 Ott 2011, 23:15:04 »
quindi

questo
window.open('http://www.sito2.com','Sito 2', 'width=300,height=200,left=10,top=10')
lo metto nel sto 1

e l'altra roba la metto nel sito 2

giusto?

Domattina provo e ti faccio sapere!

Grazie 100000000000000000000000000000000000000 000000000


Se con altra roba intendi il codice php che ti ho dato prima no :) va tutto nel sito uno....nell'index del template che utilizzi, sopra metti il codice php che ti ho dato (una delle due opzioni), poi all'interno di javascript (sempre del primo sito) fai un controllo php sulla variabile trovato se è uguale a true, nel caso l'utente va all'evento load di javascript che all'interno ha quel window.open....
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #10 il: 19 Ott 2011, 10:15:02 »
devo darti una brutta notizia.........


non funziona nessuna delle 2......

poi quando inserisco il codice viene anche visualizzato nella pagina web.......

L'alternativa sarebbe:

io apro il sito1 (accessibile a tutti)
sul sito 1 faccio un collegamento al sito2 (visibile al range di ip)
inserire un eventuale codice nel sito2 che limita gli utenti del range ip

Secondo me questa potrebbe essere una soluzione!

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #11 il: 19 Ott 2011, 10:25:15 »
Penso proprio tu stia sbagliando qualcosa, funziona benissimo ed è testato  :P
Se addirittura ti fa vedere il codice nella pagina vuol dire che stai decisamente sbagliando...
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #12 il: 19 Ott 2011, 10:35:06 »
sicuramente sto sbagliando qualcosa......

Ti posto la pagina del sito 2 che vorrei che non si aprisse per altri ip


<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>index sito 2</title>
</head>
 
<body>
$min_long = ip2long("10.22.185.0");
$max_long = ip2long("10.22.185.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
 
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;
 
<p>
&nbsp;</p>
<p>
&nbsp;</p>
<p>
vari collegamenti </p>
 
</body>
 
</html>

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #13 il: 19 Ott 2011, 10:41:31 »
No, non ci siamo  ::)


Codice: [Seleziona]
$min_long = ip2long("10.22.185.0");
$max_long = ip2long("10.22.185.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
 
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;



Questo va racchiuso tra i tag di apertura php, cioè sopra metti <?php e sotto metti ?>, va messo prima dell'html e nel sito 1.


Poi sempre nel sito 1, all'interno del tag head inserisci uno <script type="text/javascript"> con all'interno la funzione domready (non so se usi mootools, jquery o semplice javascript) e poi:


Codice: [Seleziona]
<?php if($trovato==true){ ?> window.open(............); <?php ?>
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #14 il: 19 Ott 2011, 10:59:46 »
ora piango!

quindi... la prima serie di codice l'ho messa in testa alla pagina html del template di joomla e il codice non si vede:

<?php
$min_long = ip2long("10.22.185.0");
$max_long = ip2long("10.22.185.255");
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$trovato = false;
 
if(($ip>=$min_long)&&($ip<=$max_long))
$trovato = true;
?>

poi ho visto che all'interno della pagina di joomla c'è <script type="text/javascript">

ed io ho inserito questo codice appena sotto

<?php if($trovato==true){ ?> window.open(http://10.22.185.7); <?php } ?>

ma non succede nulla se apro il sito da un'ip diverso o da un pc con gli ip del range

ma me lo sento che ci siamo quasi!

Ti sto stressando.....


Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #15 il: 19 Ott 2011, 11:06:56 »
Qua non posso darti una mano, ti posso assicurare che sia il codice php sia il javascript funzionano correttamente. Devi inserirli in modo corretto.


In particolare, nel javascript non puoi mettere quel codice sotto <script ........> senza gestire l'evento domready della pagina.


esempio di codice javascript da utilizzare:


Codice: [Seleziona]
<script type="text/javascript">
window.addEvent('domready', function(){
<?php if($trovato==true){ ?>
window.open(http://10.22.185.7);
<?php ?>
});


Questo è se utilizzi mootools  :P  con jquery è differente (non so che framework javascript utilizzi).


Non vorrei riempirti la testa di ste cose mi spiace, comunque ti assicuro che funziona, devi solo inserire correttamente il codice.
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #16 il: 19 Ott 2011, 11:07:24 »
Qua non posso darti una mano, ti posso assicurare che sia il codice php sia il javascript funzionano correttamente. Devi inserirli in modo corretto.


In particolare, nel javascript non puoi mettere quel codice sotto <script ........> senza gestire l'evento domready della pagina.


esempio di codice javascript da utilizzare:


Codice: [Seleziona]
<script type="text/javascript">
window.addEvent('domready', function(){
<?php if($trovato==true){ ?>
window.open(http://10.22.185.7);
<?php ?>
});
</script>


Questo è se utilizzi mootools  :P  con jquery è differente (non so che framework javascript utilizzi).


Non vorrei riempirti la testa di ste cose mi spiace, comunque ti assicuro che funziona, devi solo inserire correttamente il codice.
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline zacca

  • Appassionato
  • ***
  • Post: 443
  • Sesso: Maschio
    • Mostra profilo
Re:ip rete
« Risposta #17 il: 19 Ott 2011, 14:20:20 »
ho risolto semplicemente mettendo il sito2 su un'altro server, configurando IIS e mettendo i blocchi in base all'indirizzo IP delle mie reti interessate!

Cmq te ne sono veramente grato del tempo che mi hai dedicato!

Grazie Antonio

Offline Murphz

  • Global Moderator
  • Abituale
  • ********
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:ip rete
« Risposta #18 il: 19 Ott 2011, 15:06:30 »
L'importante è aver risolto  ;D  anche se penso sia una via più complicata....

Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

 



Web Design Bolzano Kreatif