Mr-Luer
2017-12-21 10:13
采纳率: 48.6%
浏览 2.6k
已采纳

共用公网ip的主机怎样ping

本来想用socket在两台电脑建立连接的,首先要确保两台电脑是可以ping通的。
主机和别的主机共用一个运营商ip
电脑A的运营商ip(在百度搜索ip得到的)是180.160.56.159;主机ip是(在dos下ipconfig命令)是:192.168.1.100
电脑B的运营商ip(在百度搜索ip得到的):222.66.117.26;主机ip是(在dos下ipconfig命令):192.168.1.1。

直接在电脑A上ping B 的运营商ip或者主机ip都不能ping通(反过来也是一样)。那么对于这种情况下怎样ping通呢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

12条回答 默认 最新

  • 菜园小杜 2017-12-21 10:52
    已采纳

    首先,根据问题电脑A的IP是192.168.1.100(地址1),但是运营商IP地址为180.160.56.159(地址2),地址1为私网地址,地址2为公网IP,在这两个地址之间有一台设备(设备X)使用了类似NAT加DHCP这些技术。
    同理电脑B也是这样的情况,电脑B的设备称之为(设备Y)所以只能将设备X与设备Y上配置VPN,使两边可以使用VPN联通,这样就可以实现PING通。

    点赞 评论
  • 「已注销」 2017-12-21 10:26

    Ping 是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络 是否连通,可以很好地分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明

    点赞 评论
  • 「已注销」 2017-12-21 10:27

    建立一个域就可以ping同

    点赞 评论
  • tplina 2017-12-21 10:32

    首先不应该ping运行商ip,要想两主机ping通,必须在逻辑上保证两主机是相连的,要想ping通:检查硬件线路;防火墙是否关闭;是否设置默认网关;而且与转接设备(如交换机,路由器)的相关配置有很重要的联系

    点赞 评论
  • Q544471255 2017-12-21 13:42

    192.168.1.100
    192.168.1.1

    这两个用内网不就可以了?

    都在一个网段,

    另外,你可以检查下,是不是防火墙没开,

    也可以用域名解析到两个IP,然后通过域名进行访问。

    点赞 评论
  • ziong2006 2017-12-21 14:50

    内网ip的话,直接ping 192.168.1.*就可以;外网的话直接ping对应ip不行,需要路由绑定一个ip映射的端口,这样你才可以进行soket通信,你的外网ip并没有映射到你电脑,路由里面有转发规则,自己可以找一下

    点赞 评论
  • 溜达1 2017-12-21 18:55

    看你的问题是要写一个点对点通讯的程序,只要两台电脑都能访问外网,理论上他们就是联通的,但是想要互相通讯,却要越过不少关口的
    我以我能想到的情况给你一些参考。首先,你要有开端口的权限,如果你是公司内网或校园网内的电脑,那么除非常用端口,比如上网浏览的80端口会开放,
    其他端口很可能被屏蔽了,这些情况你就要询问你的网管理。
    如果你的两台要通讯的终端都是通过路由器直连到外网的,就只需要设置路由器的端口转发就可以了,你提到的ping不通对方,也可能是路由器的
    设置里根本就不响应外来的ping命令,一般路由器设置里是连出去没限制,连进来就要开路由器的端口转发了。
    比如你发起连接的程序要连接对方12345端口吧,那么对方路由器就要打开12345端口,允许外面的连接进来,进来的数据连接给谁?就是转发咯。
    这里你提到的电脑B的IP貌似不对,不应该是192.168.1.1,像是路由器的默认IP,我不能确定,所以我这里举例子B发起连接到A,设置A端的路由器端口转发,
    找到A端路由器设置端口转发的界面(这里各种路由界面不同,无法详细描述了),新建或自定义一个转发规则,
    端口12345,内部IP192.168.1.100,保存,就是告诉这个路由器,所有外面要连接12345端口的请求,都给我转发到192.168.1.100的12345端口,现在你就可以试试B端连A端了,祝你好运:)

    点赞 评论
  • 小雨滴滴滴 2017-12-22 02:09

    不是直接ping对应的ip就可以了吗

    点赞 评论
  • zhangpfly 2017-12-22 02:48

    搭建一个VPN,将两个主机都加入到VPN网络里面,形成一个局域网,这样就可以通信了。这两个主机的IP地址也会发生变化,VPN网络会重新分配IP

    点赞 评论
  • zaro_cola 2017-12-22 05:18

    你想通过socket程序建立tcp或者udp连接测试收发数据吗?

    点赞 评论
  • 沐雨金鳞 2017-12-22 08:21

    简而言之,内网千千万,都可以重复,外网唯一
    如果想在两个不知道外网是否相同的内网间ping
    只能先建立连接 可以查询NAT,网络地址转换理解一下

    网上查找:
    添加双IP和双网关,就PING通。也可以通过设置路由表解决
    例如二个网段,0网和1网 网段之间已经联通,但不能PING通
    可以给电脑设置 二个IP 0网段和1网段各一个,和相应的网关,试下PING通已经可以
    也可以设置核心路由中 路由表 加一条就解决

    点赞 评论
  • DevoutPrayer 2017-12-25 15:02

    socket建立两台电脑的连接,如果用TCP/IP协议的话,只需要保证服务器端(监听端口等待连接的那一端)可见。
    可见可以是直接可以访问,或者经过端口映射把服务器端监听的端口映射到外网(或者某一个客户端可以访问的子网)。
    然后客户端直接连接映射到最后的那个ip地址和端口。

    点赞 评论

相关推荐 更多相似问题