Можливість отримати доступ до служби, щоб дізнатись вашу публічну IP-адресу, може бути дуже корисною, але як працює цей процес? Сьогоднішня публікація запитань SuperUser містить відповідь на цікаве запитання читача.
Сьогоднішня сесія запитань і відповідей надійшла до нас люб’язно від SuperUser - підрозділу Stack Exchange, угруповання веб-сайтів із питань та відповідей на основі спільноти.
Знімок екрану надано Дуглас Портер (Flickr) .
Питання
Читач SuperUser Гаррі хоче знати, які кроки для пошуку загальнодоступної IP-адреси комп’ютера:
Мені відомі такі послуги Що таке моя IP-адреса що дозволяє користувачеві знайти свою загальнодоступну IP-адресу, але я хотів би знати, як така послуга пишеться з нуля? Мені не потрібен сам код, я просто хочу знати поняття та задіяні дії (псевдокод, якщо хочете).
Це те, що я вже знаю про створення такої послуги:
- Я б створив веб-програму в Інтернеті, яка слухає / для порту 80.
- Коли надходить запит, я перевіряю його вихідну IP-адресу, а потім упаковую його у добре відформатовану HTML-відповідь, щоб користувач бачив.
Це це, чи тут теж щось інше задіяно?
Які кроки потрібно знайти загальнодоступну IP-адресу комп’ютера?
Відповідь
Співробітник SuperUser Скотт Чемберлен має для нас відповідь:
Здебільшого те, що ви перерахували, - це все, що вам потрібно зробити для базової функціональності.
Однак є ще одна річ, яку ви могли б зробити. Ви можете перевірити X-Forwarded-For заголовок, доданий деякими проксі-серверами (тип, який використовується для кешування) та / або балансувальниками навантаження і повідомляє цю адресу замість цього, оскільки адреса, яку ви отримуєте з вихідної адреси, буде адресою проксі, а не адресою користувача.
Однак цей заголовок надається користувачем, тому неможливо довести, що адреса, вказана в X-Forwarded-For - це справжня адреса джерела користувача.
Є що додати до пояснення? Звук у коментарях. Хочете прочитати більше відповідей від інших досвідчених користувачів Stack Exchange? Ознайомтесь із повним обговоренням тут .