同一个wifi链接的局域网,通过虚拟域名访问另一台电脑(方便前端调试api)

Posted FZ-august

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同一个wifi链接的局域网,通过虚拟域名访问另一台电脑(方便前端调试api)相关的知识,希望对你有一定的参考价值。

背景

项目需要开发一个新功能,前后台配合开发,后端出接口,前端接入,前端开发进度快,后端开发一个接口前端就接入一个,频繁提交代码到测试环境或者频繁切换开发分支都比较麻烦,所以直接访问后端开发的本地代码,进行对接。

参考资料

Win10如何设置防火墙开放特定端口 windows10防火墙设置对特定端口开放的方法
1.windows防火墙-高级设置-入站规则-新建规则-端口-tcp-特定本地端口-允许连接-何时应用(域、专用、公用)-添加名称
入站规则是别人访问你的电脑,出站规则是你访问别人的电脑
2.前端同事要在host中添加一个虚拟域名, 192.168.1.15 xxx.com。【直接用ip访问,报错404,时间紧急,没有查看日志找,就先不写了】
3.如果不行,就临时把专用网络的防火墙关闭。

如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?

我想将传感器数据从一个设备(带有传感器和wifi热点)传输到通过WiFi热点连接到传感器设备的其他设备。为此,我想托管一个在传感器设备上侦听端口80的本地主机网站,然后仅在其他设备上打开该站点(通过传感器设备设置的WiFi热点),但是当我尝试通过输入URL来尝试此操作时:http://192.168.1.110 ,我得到无法访问此站点 http://192.168.1.110/无法访问。unreachable如何访问其他设备上的本地主机网页?

但是,(为什么?)当设备连接到我家的WiFi路由器时,这可以很好地工作。这是图像(这是它的外观):broadcast_demo

这是我正在运行的node.js文件index.js:

const app = require("express")();
const http = require('http').Server(app);
const io = require('socket.io')(http);

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

var clients = 0;
io.on('connection', function(socket) {
   clients++;
   socket.emit('newclientconnect',{ description: 'Hey, welcome!'});
   socket.broadcast.emit('newclientconnect',{ description: clients + ' clients connected!'})
   socket.on('disconnect', function () {
      clients--;
      socket.broadcast.emit('newclientconnect',{ description: clients + ' clients connected!'})
   });
});

port = 80
http.listen(port, () => {
    console.log("listening to port",port)
})

这是html文件index.html:

<html>
    <head>
        <title>
            broadcasting_demo
        </title>
    </head>
    <script src = "/socket.io/socket.io.js"></script>
    <script>
        var socket = io();
        socket.on('newclientconnect', (data) => {
            document.body.innerHTML = '';
            document.write(data.description);
            document.write("<h1><br>Hello world, this site works<br> on other devices<br> if you're connected to my home wifi!</h1>")
        });
    </script>
    <script></script>
    <body>
        <h1>this is a demo</h1>
    </body>
</html>
答案

当您使用家庭无线网络时,传感器的ipaddr为192.168.1.110,因此您可以通过网络访问它,

但是当您连接到传感器的热点时,它将具有其他一些可访问它的公共ipaddr,因此您需要使用该ip来代替

要知道您可以简单地使用节点库public-ip

npm install public-ip

然后是>>

    const publicIp = require('public-ip');
(async () => {
    console.log(await publicIp.v4());
    //=> '46.5.21.123'
})

现在您应该可以通过传感器的热点http://46.5.21.123访问该网站

另一答案

您的IOT设备是否正在运行DHCP服务器?

以上是关于同一个wifi链接的局域网,通过虚拟域名访问另一台电脑(方便前端调试api)的主要内容,如果未能解决你的问题,请参考以下文章

如何用自己电脑访问公司内网

如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?

从局域网中的另一台计算机访问 Zend 应用程序(使用 LAMP)

vmware用桥接模式好还是NAT模式好?

真实手机访问本地电脑网站失败的原因

win10系统ping另一台电脑上虚拟机的IP