Если вы работаете в системе, в которой нет endian.h
:
#include <stdio.h>
int main() {
int test = 0;
char *bytes = (char *) &test;
*bytes = 0x1;
printf("Byte Order: ");
if (test == 1){
printf("little");
}
else {
printf("big");
}
printf(" endian.\n");
return 0;
}
Вы имеете в виду любой маршрутизируемый IP-адрес вашего DSL/кабельного модема/и т.д. роутер есть?
Вам нужно либо запросить это устройство, либо спросить внешний сервер, какой IP-адрес он видит при подключении к нему. Самый простой способ сделать это — выполнить поиск в Google по запросу «какой у меня ip», и, как и при поиске с расчетом, он сообщит вам об этом в первом результате поиска. Если вы хотите сделать это из командной строки, вам нужно будет проверить вывод какого-нибудь скрипта, который будет отображать информацию. У службы динамического DNS dyndns.org есть служба, которую вы можете использовать -попробуйте эту команду
wget http://checkip.dyndns.org -O -
Вы должны получить что-то вроде
HTTP request sent, awaiting response... 200 OK
Length: 105 [text/html]
Saving to: ‘STDOUT’
- 0%[ ] 0 --.-KB/s <html><head><title>Current IP Check</title></head><body>Current IP Address: 192.168.1.199</body></html>
- 100%[===================>] 105 --.-KB/s in 0s
2017-09-20 14:16:00 (15.4 MB/s) - written to stdout [105/105]
Я изменил свой IP-адрес на универсальный, не -маршрутизируемый, и выделил его для вас жирным шрифтом.
Если вам нужен только IP,вам нужно будет разобрать его оттуда -быстро и грязно, но у меня это работает. И я на 100% уверен, что есть более безопасный способ сделать это...
wget http://checkip.dyndns.org -O - | grep IP | cut -f 2- -d : | cut -f 1 -d \<
Что даст вам только
192.168.1.199
Альтернативы (избегать синтаксического анализа):
Чтобы получить IPv4
curl -4 icanhazip.com
Чтобы получить IPv6
curl -6 icanhazip.com
Это вернет вам ваш общедоступный IP-адрес
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com