nodejs咋获得外网IP?
发布于 10 年前 作者 wei451521 10266 次浏览 最后一次编辑是 8 年前

求教有没什么系统函数?

10 回复

可以通过外部的API来获得,比如 http://ifconfig.me/ip

没试过,但是想到一个很愚昧的方法: 1.用C++获取ip 然后编译成.node 然后 require 进来运行 2. 或者直接 var exec = require(‘child_process’).exec, result = exec(‘ifconfig’); 、然后分析result

ifconfig 看不到外网IP的……

我google了一下,也并没发现有现成的库或者优雅的代码。 好多实现都是去访问那些 IP 识别网站,然后进行获取的。

不就應該這樣嘛。。。 我不出門兜一圈 見到個人問問我怎麼知道我住在哪個小區。(當然你自己搬進來的,時候房產證上寫了的,當然知道,但這前提是你本地得有個房產證什麼的記錄下當前的IP啊)

@tzwm 什么叫外网IP ~ ~

授教,但是这样只能获取本机的一些信息。。。如果他是通过路由器连外网只能显示内网IP额

这跟获取ifconfig后,自己分析数据没什么两样

分三种情况的 (一) 如果你的服务器有外网ip, 也就是说通过外网可以直接访问你的服务器,这个情况,直接用 os 模块的 networkInterfaces() 方法可以获取相关息信。 (二) 如果你的服务器没有外网ip, 也就是说,通过外网不能直接访问你的主机, (你的服务器可能位于代理服务器,或者防火墙后面等),这种情况,如果通过编程解决的话, 只能: 访问外网服务器 -> 外网服务器获取你的服务器所在的网络的公共出口IP(可能是代理服务器的公网ip,也可能是路由器的公网ip) -> 外网服务器返回相关信息, 用 http 模块、 net模块 ,dgram模块都可以实现。 (三)如果你服务器装了动态域名解析软件,直接用dns 模块可以解决。

都很简单,自己去写个模块玩玩吧。

这次写完善了— good

回到顶部