如何在两台具有公共IP但都位于LAN后面的机器之间进行通信(python解决方案)?

2023-12-14

正在寻找一个简单的 python 解决方案:

假设机器A的本地IP是192.168.1.5,公共IP是111.11.111.11,机器B的本地IP是10.0.0.5,公共IP是222.22.222.22,现在我需要在这两台机器之间进行通信,你该怎么做?

我见过很多服务器和客户端都在同一网络上的套接字编程示例,但是如何在不更改路由器配置(端口转发等)的情况下连接不同网络后面的机器?

EDIT:

如果机器 A 在 LAN 后面怎么办:本地 IP 192.168.1.5,公共 IP 111.11.111.11;机器B是一个HTTP服务器,公共IP为222.22.222.22;现在您可以通过 HTTP 请求轻松地从 A 到达 B,但是从机器 B 到达机器 A 的最佳解决方案是什么?


打孔是实现这一目标的一种方法。打洞是一种 NAT 穿越技术,允许 NAT 后面的设备之间直接通信。并非所有 NAT 都支持打洞。但很大比例的 NAT 允许。

http://www.brynosaurus.com/pub/net/p2pnat/

这个链接详细解释了它。他们也给出了统计数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在两台具有公共IP但都位于LAN后面的机器之间进行通信(python解决方案)? 的相关文章

随机推荐

  • 使用架构方法在 Mongoose For 循环中保存项目

    如果我附加任何额外的验证方法 我在保存通过 for 循环运行的项目时遇到问题 基本上 我正在构建一个 Instagram API 应用程序 允许编辑者删除不雅的照片 照片会以 20 张为一组从 Instagram 中提取并展示给编辑 如果编
  • Discord.js 机器人欢迎会员,分配角色并向他们发送 DM

    所以当新成员加入时Guild 不和谐服务器 机器人应该在某个频道 ID 766716351007686696 发送消息 向他们发送直接消息 然后添加角色 Human Bean 这是我现在拥有的代码 它不起作用 底部有错误 client on
  • JavaScriptSerializer [ScriptIgnore] 对虚拟属性无效?

    我返回了 Json myObj 操作结果 myObj 的类型为 Badge Badge 仅有的两个可能导致序列化程序循环的对象是 public class Badge public Badge public Badge String Nam
  • CUDA Stream 压缩:理解概念

    我正在使用 CUDA Thrust CUDPP 据我了解 在流压缩中 数组中的某些项目被标记为无效 然后 删除 那么 移除 到底是什么意思呢 假设原始数组A长度为 6 如果有 2 个元素无效 无论我们提供什么条件 则 系统是否创建newGP
  • 使用 WAMP 新方法连接 PHP 和 SQL Server

    在独立的 PHP 和 SQL 服务器之间创建连接的最佳方法是什么 两台服务器 服务器 a SQL 和服务器 b PHP 请注意 我使用的是 wamp 我读了一些像下面这样的文章但我想知道有没有新主意 我测试了这段代码 效果完美 try us
  • 如何在新窗口中打开表单结果?

    我的网页上的 iframe 中有一个表单 单击提交按钮后 将在包含我的网页的窗口中查看结果 如何在新窗口中打开结果 你能调整表单html本身吗
  • 比较php中的两个数组

    我使用这个代码 new array 123 gt a 456 gt b old array 123 gt a 456 gt b 那么 new数组变成这样 new array 456 gt b 123 gt c 789 gt e 正如你看到的
  • jQuery $.ajax 使用 JSONP 进行跨域调用,返回状态 200,但正在调用错误函数而不是成功

    我的 Web 应用程序正在尝试访问属于不同域的另一台服务器的信息 由于它是跨域ajax调用 因此我使用 dataType 作为 JSONP 而不是JSON 现在 在 WebInspector gt Network 选项卡中 我看到请求已成功
  • Spring @RestController 获取请求内容类型以响应 json 或 html

    如何获取请求的 Content Type 值 我们需要它来打印 json 响应或 Html 响应 我的代码是这样的 RestController public class GestorController RequestMapping va
  • 使用cmd在windows中设置环境变量

    要在 Windows 中启动我的项目 我必须使用以下命令在 cmd 中设置 java 环境变量 set JAVA HOME D Java jdk1 7 0 但它没有设置环境变量 我不知道问题是什么 等待几个小时后 我发现原因是由于两侧的空白
  • 为多人游戏提供良好的安全性

    我用eclipse做了一个游戏 我有一个服务器程序和一个客户端程序 客户端使用套接字与服务器进行通信 如果客户端启动 它将其用户名和密码发送到服务器 如果该组合存在 则客户端可以与服务器进行通信 而客户端不断读取游戏中其他人的等级并不断发送
  • Rails Admin - 删除相关对象

    我在用着导轨管理员在我的网站之一上 到目前为止 一切都很好 但我不知道如何从编辑页面中删除相关对象 例子 我有两个模型 Property 和 PropertyImage class Property has many property im
  • javafx如何禁用checkboxTreeItem中的一项?

    我是 JavaFX 新手 在复选框树视图中遇到问题 我想禁用根值中的一项 序列号但根据 JavaFX 文档 这似乎是不可能的 我禁用了点击效果cbTreeViewdisable treeItems 3 有没有办法将任何一个值变灰 或设置一个
  • firebase 数据库规则允许对具有特定信息的特定用户进行读/写

    我的 firebase 数据库规则如下 rules users uid read auth null root child users child auth uid child role val teacher write auth nul
  • 使用 Linq 或 Lambda 表达式检查复杂对象中的重复项

    我刚刚开始学习 linq 和 lambda 表达式 它们似乎非常适合在复杂的对象集合中查找重复项 但我有点困惑 希望有人可以帮助我回到快乐编码的道路上 我的对象的结构类似于 list list unique 客户标识符 我需要确保整个复杂对
  • 玩笑完成回调不可分配给 ProvidesCallback 或未定义类型的参数

    我正在尝试用笑话创建一个测试 我想使用done 回调但 Typescript 不接受它 我尝试使用 typeany jest DoneCallback或者不加任何类型但又不起作用 有什么解决方案或想法吗 it implements opti
  • 自动建议短语/句子完成

    我正在构建一个应用程序 我希望我的应用程序能够读取用户在输入文本框中输入的内容 并根据到目前为止的句子向用户提供两个事物 1 他们正在输入的可能短语列表 以便轻松自动完成 我猜我会使用预设的短语列表 我可以通过搜索来获得这些建议 2 根据句
  • PerformSelector 不工作

    MyThreadRun 方法是这样从 MyMethod 调用的 NSArray args NSArray arrayWithObjects arg1 target NSStringFromSelector mySelector nil NS
  • 单元测试 Zsh 完成脚本

    我正在尝试为 Zsh 编写一个完成脚本 我想对完成脚本进行单元测试 例如 我想测试完成情况my command h包括 help 对于鱼 我可以使用complete C my command h 然后会输出 help以及任何其他有效的完成情
  • 如何在两台具有公共IP但都位于LAN后面的机器之间进行通信(python解决方案)?

    正在寻找一个简单的 python 解决方案 假设机器A的本地IP是192 168 1 5 公共IP是111 11 111 11 机器B的本地IP是10 0 0 5 公共IP是222 22 222 22 现在我需要在这两台机器之间进行通信 你