Εξωτερική IP σχολείων

Ξεκίνησε από alkisg, 22 Σεπ 2010, 10:38:05 ΜΜ

« προηγούμενο - επόμενο »

alkisg

Μερικές φορές χρειαζόμαστε να δούμε την εξωτερική IP του σχολείου, π.χ. για να συνδεθούμε από το σπίτι στον σχολικό εξυπηρετητή.
Επειδή το ΠΣΔ περνάει από caching, ιστοσελίδες τύπου http://www.whatsmyip.org/ εσφαλμένα εμφανίζουν την IP του cache server (π.χ. 194.63.239.234) αντί της IP του σχολείου.

Έτσι έφτιαξα μια σελιδούλα από την οποία μπορείτε να βλέπετε την IP σας: https://alkisg.mysch.gr/ip/
(είναι επίτηδες με τη μορφή VAR="VALUE" ώστε να μπορεί να χρησιμοποιηθεί και από scripts).

edit: το βάλαμε και στο site της Τεχνικής Στήριξης, με πιο απλή μορφή για ανθρώπους αντί για scripts:
http://ts.sch.gr/tech/ip

Δημήτρης Δαλαγιώργος

Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

gidarakos

Όταν ο καθηγητής επισκέπτετε από τον LTSP το www.canyouseeme.org για να δει την πραγματική IP η απάντηση είναι 127.0.0.1

Τι συμβαίνει;


gidarakos

Άλκη δε νομίζω να φταίει το canyouseeme..
Όταν επισκέπτομαι το https://alkisg.mysch.gr/ip/ από τα windows (με IP 10.x.y.z) παίρνω απάντηση:
IP='81.186.24.78'
REMOTE_ADDR='81.186.24.78'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)'
HTTP_ACCEPT='*/*'
HTTP_ACCEPT_LANGUAGE='el-GR'
HTTP_ACCEPT_ENCODING='gzip, deflate'


Ενώ μέσα από τον LTSP (με IP 10.x.y.z) παίρνω:
IP='127.0.0.1'
HTTP_X_FORWARDED_FOR='127.0.0.1'
REMOTE_ADDR='81.186.24.78'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; el-GR; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.04 (lucid) Firefox/3.6.16'
HTTP_ACCEPT='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_LANGUAGE='el-gr,el;q=0.7,en-us.;q=0.3'
HTTP_ACCEPT_ENCODING='gzip,deflate'
HTTP_ACCEPT_CHARSET='ISO-8859-7,utf-8;q=0.7,*;q=0.7'


Μάλλον το canyouseeme απαντάει την IP και όχι τη REMOTE_ADDR που θέλουμε.
Γιατί όμως διαφορετική IP από windows διαφορετική από LTSP;

alkisg

Α οκ το squid σου είναι που μπλέκει τον κόσμο, γιατί θέτει HTTP_X_FORWARDED_FOR='127.0.0.1' . :)
Το HTTP_X_FORWARDED_FOR το βάζουν οι proxy servers ώστε ο web server να καταλάβει ότι τη σελίδα θα πρέπει να την επιστρέψει μεν στην IP του proxy server, αλλά αυτός που ζητάει πραγματικά τη σελίδα δεν είναι ο proxy server αλλά ο "forwarded" client. Και έτσι μαθαίνουν έμμεσα την IP του client όταν αυτός είναι πίσω από proxy server.

Άρα και το canyouseeme και το δικό μου έχουν bug, θα έπρεπε όταν το HTTP_X_FORWARDED_FOR είναι διεύθυνση τοπικού δικτύου να μην την χρησιμοποιούν αλλά σ' αυτήν την περίπτωση να προτιμάνε την REMOTE_ADDR.
Το έφτιαξα το δικό μου, δοκίμασέ το κι αν δουλεύει σωστά τότε κάνε bug report στο canyouseeme να το φτιάξουν κι αυτοί.
Τώρα αν κάποιος είναι πίσω από 2 proxy servers (δηλαδή και του εργαστηρίου και τον κεντρικό του ΠΣΔ) δεν ξέρω τι θα παιχτεί. :)

gidarakos

Άλκη το https://alkisg.mysch.gr/ip/ μέσα από τον LTSP συνεχίζει να απαντάει το ίδιο.

Υ.Γ. Πάντως και έτσι την κάνουμε τη δουλειά μας.. κοιτάμε το REMOTE_ADDR..

alkisg

Ουπς με πρόδωσε η substr() της php. Αν θες ξαναδοκίμασε, πρέπει να είναι εντάξει τώρα. Αν θες κάνε και bug report στο canyouseeme.

gidarakos

Τώρα στα αποτελέσματα βλέπω μία IP 10.2.32.11 η οποία δεν έχει σχέση με την τοπική που έχω στο pc.

Από windows:
IP='81.186.24.78'
HTTP_X_FORWARDED_FOR='81.186.24.78'
REMOTE_ADDR='10.2.32.11'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)'
HTTP_ACCEPT='*/*'
HTTP_ACCEPT_LANGUAGE='el-GR'
HTTP_ACCEPT_ENCODING='gzip, deflate'


Από LTSP:
IP='10.2.32.11'
HTTP_X_FORWARDED_FOR='127.0.0.1, 81.186.24.78'
REMOTE_ADDR='10.2.32.11'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; el-GR; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.04 (lucid) Firefox/3.6.16'
HTTP_ACCEPT='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_LANGUAGE='el-gr,el;q=0.7,en-us.;q=0.3'
HTTP_ACCEPT_ENCODING='gzip,deflate'
HTTP_ACCEPT_CHARSET='ISO-8859-7,utf-8;q=0.7,*;q=0.7'

alkisg

Α μπράβο αυτό είναι που έλεγα ότι δεν ήξερα τι θα γίνει όταν υπάρχουν δύο squids στη σειρά. Απ' ότι φαίνεται, τα βάζουν στο HTTP_X_FORWARDED_FOR, δηλαδή το δικό σου squid έβαλε το 127.0.0.1 και το squid του ΠΣΔ έβαλε το 81.186.24.78. Ένα καλό script θα πρέπει να τσεκάρει κι αυτήν την ακραία περίπτωση. Θα διορθώσω το δικό μου στην πρώτη ευκαιρία.

Η απορία μου είναι γιατί τα αποτελέσματα που έστειλες χθες δεν πέρασαν από το squid του ΠΣΔ αλλά πήγαν κατευθείαν. Ίσως να άλλαξαν κάτι στις ρυθμίσεις του ΠΣΔ από χθες μέχρι σήμερα.

Το 10.2.32.11 μάλλον είναι η εσωτερική IP του squid του ΠΣΔ που χρησιμοποιείς:
$ dig @nic.sch.gr +short -x 10.2.32.11
www01-users.att.sch.gr.

gidarakos

Αυτό λύνεται αν έχουμε πολλούς proxy;
Μήπως γι' αυτό το canyouseme δεν ασχολείται όταν υπάρχει/ουν proxy;

alkisg

Παράθεση από: http://en.wikipedia.org/wiki/X-Forwarded-For
The general format of the field is:

    X-Forwarded-For: client1, proxy1, proxy2

Άρα όταν υπάρχει το HTTP_X_FORWARDED_FOR, η πρώτη εξωτερική IP που θα βρούμε από αριστερά προς τα δεξιά είναι αυτή που μας ενδιαφέρει. Θα το υλοποιήσω από Δευτέρα.
Το canyouseeme πιστεύω ότι έχει bugs. Όχι ότι δεν ασχολείται επίτηδες. Αν κάποιος τους ενημερώσει υποθέτω ότι θα ασχοληθούν και θα λύσουν το πρόβλημα, αφού τους ενδιαφέρει κι αυτούς να είναι ΟΚ για να έχουν επισκέπτες.

gidarakos

Άλκη δεν ξέρω αν βοηθάει για τη σωστή υλοποίηση της https://alkisg.mysch.gr/ip/ απλά αναφέρω τι παρατήρησα:

Από το σπίτι απαντάει:
IP='85.73.232.122'
HTTP_X_FORWARDED_FOR='85.73.232.122'
REMOTE_ADDR='10.2.33.11'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)'
HTTP_ACCEPT='*/*'
HTTP_ACCEPT_LANGUAGE='el-GR'
HTTP_ACCEPT_ENCODING='gzip, deflate'


Από το εργαστήριο (μέσω neatx):
IP='10.2.32.11'
HTTP_X_FORWARDED_FOR='127.0.0.1, 194.63.197.228'
REMOTE_ADDR='10.2.32.11'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; el-GR; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.04 (lucid) Firefox/3.6.16'
HTTP_ACCEPT='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_LANGUAGE='el-gr,el;q=0.7,en-us.;q=0.3'
HTTP_ACCEPT_ENCODING='gzip,deflate'
HTTP_ACCEPT_CHARSET='ISO-8859-7,utf-8;q=0.7,*;q=0.7'

alkisg

Θεωρητικά το διόρθωσα το https://alkisg.mysch.gr/ip/, αν θες κάνε μια δοκιμή ακόμα από το σχολείο σου (μέσω neatx) για να βεβαιωθούμε ότι παίζει ΟΚ ακόμα και πίσω από δύο (ή και παραπάνω) proxy.

gidarakos

Πρέπει να είναι οκ.

Από σπίτι τα ίδια και από σχολείο:
IP='194.63.197.228'
HTTP_X_FORWARDED_FOR='127.0.0.1, 194.63.197.228'
REMOTE_ADDR='10.2.32.11'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; el-GR; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.04 (lucid) Firefox/3.6.16'
HTTP_ACCEPT='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_LANGUAGE='el-gr,el;q=0.7,en-us.;q=0.3'
HTTP_ACCEPT_ENCODING='gzip,deflate'
HTTP_ACCEPT_CHARSET='ISO-8859-7,utf-8;q=0.7,*;q=0.7'


Παρατήρησα ότι με refresh αλλάζει (όχι συνέχεια αλλά αλλάζει) η REMOTE_ADDR από 10.2.32.11 σε 10.2.33.11 και το αντίστροφο.

Παράθεση από: alkisg στις 01 Απρ 2011, 08:40:23 ΠΜ
Το 10.2.32.11 μάλλον είναι η εσωτερική IP του squid του ΠΣΔ που χρησιμοποιείς:

Τελικά αυτές οι ip (10.2.32-33.11) εμφανίζoνται (από σπίτι και σχολείο) γιατί η https://alkisg.mysch.gr/ip/ είναι πίσω από squid του ΠΣΔ;

alkisg

Παράθεση από: gidarakos στις 09 Απρ 2011, 10:27:31 ΜΜ
Τελικά αυτές οι ip (10.2.32-33.11) εμφανίζoνται (από σπίτι και σχολείο) γιατί η https://alkisg.mysch.gr/ip/ είναι πίσω από squid του ΠΣΔ;

www01-users.att.sch.gr = 10.2.32.11
www02-users.att.sch.gr = 10.2.33.11
www03-users.att.sch.gr = 10.2.34.11

Έτσι πιστεύω, ότι αυτοί πρέπει να είναι squid servers σε transparent λειτουργία. Δυστυχώς δεν έχω βρει κάποιο έγγραφο που να περιγράφει αναλυτικά το τεχνικό μέρος του web hosting του ΠΣΔ...

gidarakos

#16
Παράθεση από: alkisg στις 01 Απρ 2011, 08:40:23 ΠΜ
Απ' ότι φαίνεται, τα βάζουν στο HTTP_X_FORWARDED_FOR, δηλαδή το δικό σου squid έβαλε το 127.0.0.1 και το squid του ΠΣΔ έβαλε το 81.186.24.78
Δηλαδή και από το σπίτι o 10.2.33.11 είναι αυτός που βάζει την αντίστοιχη IP στο HTTP_X_FORWARDED_FOR;
Αν η https://alkisg.mysch.gr/ip/ δεν ήταν πίσω από τον proxy (10.2.33.11) δεν θα βλέπαμε καθόλου την εγγραφή HTTP_X_FORWARDED_FOR;

alkisg

1) Ναι
2) Στο σπίτι δεν θα έβλεπες καθόλου HTTP_X_FORWARDED_FOR, ενώ στο σχολείο θα έβλεπες τον δικό σου proxy στο 127.0.0.1.

Κώστα, τα μηνύματα που αναφέρονται στο https://alkisg.mysch.gr/ip θα τα ενώσω με το σχετικό θέμα εδώ:
https://alkisg.mysch.gr/steki/index.php?topic=3209.0

gidarakos

#18
Παράθεση από: alkisg στις 01 Απρ 2011, 08:40:23 ΠΜ
Η απορία μου είναι γιατί τα αποτελέσματα που έστειλες χθες δεν πέρασαν από το squid του ΠΣΔ αλλά πήγαν κατευθείαν. Ίσως να άλλαξαν κάτι στις ρυθμίσεις του ΠΣΔ από χθες μέχρι σήμερα.

Εφόσον σε αυτή τη δοκιμή https://alkisg.mysch.gr/steki/index.php?topic=3209.msg39654#msg39654 δε υπήρχε - θεωρητικά - proxy δε θα έπρεπε στο REMOTE_ADDR να εμφάνιζε την ip (όχι proxy) του https://alkisg.mysch.gr/ip/ και όχι τη δική μου;

Ή αυτό έχει να κάνει με την υλοποίηση της php σου και τι εμφανίζεις που;

alkisg

REMOTE_ADDR, δηλαδή "απομακρυσμένη διεύθυνση" από την πλευρά του server είναι η IP του χρήστη.
Όχι, δεν έχει να κάνει με την υλοποίησή μου, αυτές οι μεταβλητές είναι του πρωτοκόλλου http.
Το μόνο που κάνει η υλοποίησή μου είναι να υπολογίζει την μεταβλητή IP (που είναι καθαρά δικιά μου) από τις μεταβλητές REMOTE_ADDR και HTTP_X_FORWARDED_FOR του http.

gidarakos

Παράθεση από: alkisg στις 10 Απρ 2011, 08:19:50 ΜΜ
REMOTE_ADDR, δηλαδή "απομακρυσμένη διεύθυνση" από την πλευρά του server είναι η IP του χρήστη.
Είχε γίνει κατανοητό αυτό αλλά με μπέρδεψε μετά με τους proxy..

Ευχαριστώ για τις διευκρινίσεις.

alkisg

Το βάλαμε και στο site της Τεχνικής Στήριξης:
http://ts.sch.gr/tech/ip

Σε πιο απλή μορφή, για ανθρώπους, όχι για scripts.

gidarakos

Παράθεση από: alkisg στις 01 Απρ 2011, 08:40:23 ΠΜ
Η απορία μου είναι γιατί τα αποτελέσματα που έστειλες χθες δεν πέρασαν από το squid του ΠΣΔ αλλά πήγαν κατευθείαν. Ίσως να άλλαξαν κάτι στις ρυθμίσεις του ΠΣΔ από χθες μέχρι σήμερα.
Απλά αναφέρω τις διαφορές που τυχαία παρατήρησα:

1. https://alkisg.mysch.gr/ip/
IP='81.186.24.78'
REMOTE_ADDR='81.186.24.78'
HTTP_HOST='alkisg.mysch.gr'
HTTP_USER_AGENT='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'
HTTP_ACCEPT='text/html, application/xhtml+xml, */*'
HTTP_ACCEPT_LANGUAGE='el-GR'
HTTP_ACCEPT_ENCODING='gzip, deflate'


2. http://users.sch.gr/alkisg/ip/
IP='81.186.24.78'
HTTP_X_FORWARDED_FOR='81.186.24.78'
REMOTE_ADDR='10.2.33.11'
HTTP_HOST='users.sch.gr'
HTTP_USER_AGENT='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'
HTTP_ACCEPT='text/html, application/xhtml+xml, */*'
HTTP_ACCEPT_LANGUAGE='el-GR'
HTTP_ACCEPT_ENCODING='gzip, deflate'


Μάλλον στην 1η περίπτωση δεν περνάει από proxy

aprekates

 Από την εφαρμογή  http://ts.sch.gr/tech/ip βρίσκουμε ip:  81.186.182.170  για το σχολείου μου.
Η βάση δεδομένων όμως του ΠΣΔ δείνει; IP υποδίκτυο NAT      81.186.182.168 
Ποιό από το δύο είναι το σωστο;

Αλέξανδρος

Yannis Siahos

και τα δύο  :)

81.186.182.168 /4 είναι το υποδίκτυο που περιλαμβάνει 4 IP διευθύνσεις εκ των οποίων οι δύο είναι οι χρήσιμες:
την .168 που είναι το υποδίκτυο
την .169 που συνήθως δίνεται στον εξυπηρετητή (σε όποιο PC χρησιμοποιεί την 10.x.y.10 ιδιωτική δ/νση)
την .170 που χρησιμοποιούν όλα τα υπόλοιπα PCs
την .171 που είναι το broadcast του δικτύου

ChrsMel

Έχω μια ιστοσελίδα στο τοπικό server 10.x.x.10.
Από το εξωτερικό δίκτυο μπαίνουμε μέσω http://srv-.....sch.gr
Πώς θα μπορούσα στα fat και thin clients να ρυθμίσω το αρχείο hosts των χρηστών ώστε οι μαθητές να μπαίνουν και μέσα από το εργαστήριο με το  srv-.....sch.gr κι όχι με την ip 10.x.x.10 ?

alkisg

#26
Ένας τρόπος είναι να μπει στο /etc/hosts.
Αν έχεις LTSP, γίνεται κεντρικά με την παρακάτω γραμμή στο ltsp.conf:
HOSTS_SRV="10.x.y.10    srv-...sch.gr"
Αλλιώς είτε το βάζεις στο dnsmasq, αν τον χρησιμοποιείς ως κεντρικό DNS server,
ή στην τελευταία περίπτωση, χειρωνακτικά σε κάθε /etc/hosts.

Αν έχεις Windows, το αντίστοιχο αρχείο βρίσκεται στο c:\windows\system32\drivers\etc\hosts.