问题
最近有些设备出现问题,想通过服务器反查,但是通过设备ID未查找到该设备,因此想通过设备的IP来确认该设备是否连接过服务器;但是嵌入式端很多linux工具都不可用,如果需要自己写程序,但是已发出的设备又没有该程序;
方法
设备采用的是嵌入式linux,其中的工具箱busybox中有轻量级的wget应用,因此可以用改应用获取设备公网IP;
wget -q -O - myip.ipip.net #将获取的结果,写到标准输出中,后者是打印ip的一个服务,也可以自建;-q将下载过程隐藏
如果设备中存在curl应用,更为简单,不过curl较大,一般嵌入式设备不会存在;
curl myip.ipip.net
当然麻烦些,什么都不想布置,也不信任别人的服务;如果设备内部存在ssh应用,可以ssh到自己的服务器,然后用who查看用户;不过该方法也可能存在问题,嵌入式设备的ssh客户端因为版本较旧连接到服务器被拒绝(“NO MATCHING ALGO KEX” error while attempt to ssh via older ssh clients)。