Вы можете использовать функцию 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);