Доступ к необработанным сокетам на Raspberry pi с помощью nodejs

я хочу сделать обнаружение ip в моей локальной сети. Я написал скрипт, используя nodejs и debian linux и модуль net-ping от nodejs. Он отлично работает на моей локальной машине.

Но когда он пытается запустить его на моем устройстве RaspberryPi, он выдает ошибку «Операция не разрешена».

Я даже пытался дать доступ к необработанным сокетам узлу, назначив возможности setcap cap_net_raw=+e 'путь к узлу', но даже эта операция не разрешена.

Пожалуйста, кто-нибудь предложите некоторые решения, позволяющие модулю net-ping получать доступ к необработанным сокетам.

Спасибо


person Ravi Jadhav    schedule 25.04.2014    source источник
comment
Какой дистрибутив вы используете? Вы пробовали запускать приложение как root? sudo app.js?   -  person jeremy    schedule 25.04.2014
comment
я запускаю дебиан. Кроме того, работа с правами root подвергает устройство проблемам безопасности, так что это не вариант. Также команда node не работает с sudo.   -  person Ravi Jadhav    schedule 25.04.2014
comment
По крайней мере, это шаг по устранению неполадок. Node абсолютно может работать с sudo.   -  person jeremy    schedule 25.04.2014
comment
Вы пробовали raspbian дистрибутив JXcore?   -  person Ozzz    schedule 01.05.2014
comment
cap_net_raw=e ничего не значит. Возможно, вы захотите попробовать cap_net_raw=ep.   -  person Tinkerer    schedule 31.05.2021


Ответы (1)


net-ping использует node-raw-socket, которому требуется root-доступ для создания необработанных сокетов.

Вам нужно будет запустить приложение с помощью sudo:

sudo node app.js
person Sam    schedule 07.11.2018