Новости
TL; DR - ваш IP-адреса: ....
Тепер давайте докладніше розберемося з цим!
По-перше, якщо вже нам потрібен ip адресу, то варто познайомитися з командою ip . Зокрема, для отримання інформації про наявні мережеві інтерфейси, а також їх налаштування, можна використовувати команду ip addr або скорочений варіант ip a:
$ Ip addr 1: lo: <LOOPBACK, UP, LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet * * 127.0.0.1 ** / 8 scope host lo valid_lft forever preferred_lft forever inet6 :: 1/128 scope host valid_lft forever preferred_lft forever
Команда ip досить нова, не на всіх системах вона є. Так, наприклад, на MacOS, FreeBSD або старих версіях Linux замість команди ip можна використовувати команду ifconfig :
$ Ifconfig lo0: flags = 8049 <UP, LOOPBACK, RUNNING, MULTICAST> mtu 16384 options = 1203 <RXCSUM, TXCSUM, TXSTATUS, SW_TIMESTAMP> inet 127.0.0.1 netmask 0xff000000 inet6 :: 1 prefixlen 128 inet6 fe80 :: 1% lo0 prefixlen 64 scopeid 0x1 nd6 options = 201 <PERFORMNUD, DAD>
Відповідно, ми бачимо інтерфейс lo, у якого налаштований ip 127.0.0.1. Однак, там ми зустрінемо аж ніяк не один мережевий інтерфейс. Наприклад, цей самий lo - це псевдо-інтерфейс для того, щоб додаток в операційній системі могло спілкуватися з іншим на тій же по "мережі".
Відповідно, тільки один (варіант з декількома також можливий, але швидше за все, це не ваш випадок) з виведених інтерфейсів звертається в інтернет.
Як дізнатися, який же мережевий інтерфейс ходить в інтернет
Знову ж скористаємося командою ip, але на цей раз використовуємо параметр route - отримаємо список налаштованих маршрутів. Саме їх використовує операційна система при виборі, через що слати дані.
$ Ip route default via 10.111.88.11 dev ens192 proto static metric 100
Знову ж в MacOS, FreeBSD або старих версіях Linux замість команди ip можна використовувати команду route :
$ Route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.111.88.11 0.0.0.0 UG 100 0 0 ens192
- в більшості випадків використовується маршрут по умполчанію, або ж default (також він пишеться як 0.0.0.0). Таким чином ми бачимо, що використовується ip 10.111.88.11.
Локальні адреси і NAT
Однак, не все так просто. Це ваш локальний ip - він використовується для адресації у внутрішній мережі. Як я це визначив? Все просто: є діапазони ip-адрес, які використовуються тільки у внутрішніх локальних. Ось їх короткий список:
Наступні діапазони визначені IANA як адреси, виділені локальних мереж:
- 10.0.0.0 - 10.255.255.255
- 192.168.0.0 - 192.168.255.255
- 100.64.0.0 - 100.127.255.255
- 172.16.0.0 - 172.31.255.255
- перші 2 діапазону використовуються особливо часто.
Однак, саме з цієї адреси будуть надсилатися дані. Але сайти, на які ми підемо побачать не їх. Все завдяки технології NAT - підміни ip-адрес на хості маршрутизатора.
Маршрутизатор отримає дані від нас, змінять вихідний ip-адреса на свій і відправить далі, а коли прийде відповідь, все замінить назад.
Це робиться по 2-м причин:
- Кількість IP-адрес версії 4 (яка зараз найбільш поширена) обмежена. Більш того, вони закінчилися - тепер хіба що орендувати або перекуповувати.
- З міркувань безпеки: зовні ніхто не зможе до вас підключитися.
Тому, в загальному випадку, ви не можете дізнатися той ip, який буде використовуватися в інтернеті без використання зовнішніх сервісів.
Ну а найпростіший варіант дізнатися свій зовнішній IP-адреса - просто сходити на один з сайтів , Які як раз зроблені для цього.
Як я це визначив?