websocket является локальным соединением - PullRequest
0 голосов
/ 25 апреля 2018

Я пишу веб-сайт, где сервер находится на пи и запускает программу на C, используя libwebsockets. Мне интересно, можно ли определить, является ли хост локальным (подключенным из локальной сети) или удаленным (из глобальной сети). Я хотел бы ограничить возможности веб-страницы, если они получены из удаленного источника.

1 Ответ

0 голосов
/ 07 января 2019

Вы можете использовать функцию lws_get_peer_simple для получения IP-адреса:

char name[16];
lws_get_peer_simple(wsi,name,16);

Оттуда должно быть легко определить, находится ли IP-адрес в локальных подсетях.Одним из способов сделать это является простое сравнение строк:

if(strstr(name,"10.")==name)return(LOCAL_NET);
if(strstr(name,"192.168."==name))return(LOCAL_NET);
return(PUBLIC_NET);
...