一亩三分地

 找回密码 注册账号

扫描二维码登录本站


Salarytics=Salary Analytics
查询工资数据
系统自动计算每年收入

码农求职神器Triplebyte
不用海投
内推多家公司面试

科技公司如何
用数据分析驱动产品开发
coupon code 250off 立减$250

深入浅出AB Test
从入门到精通
coupon code 250off 立减$250
游戏初创公司招聘工程师、UIUX Designer和游戏策划
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
查看: 782|回复: 23
收起左侧

Linux network上可以Ping, 但是python程序读不到数据

[复制链接] |试试Instant~
我的人缘0

分享帖子到朋友圈
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
本帖最后由 pengzhao0524 于 2019-8-24 04:52 编辑

我们的机器上装的ubuntu server,它有一个network,192.168.1.50,连着几个设备.
现在我们要加一个新的设备,这个设备的ip 是172.31.252.1. 于是我在主机/etc/network/interfaces 里加了这个ip. 我现在在192这个网上,我可以ping 172.31.252.1这个地址,用tcpdump也能看到数据从这个地址发出来。但是我的python 程序读不出数据来。

我自己测试时,我自己设了一个小网,我给自己的电脑set to 172.31.252.100,连上那个新设备,我的Python 程序就可以读数据。

请问各位,是哪里的问题呢?(我试着加个routing table,没有任何影响)万分感谢!!!!卡在这儿了,也没有人可以商量。设备厂商也联系了,觉得是我们自己的问题,他们没兴趣管。网上的文章一般能够Ping,就算设置好了,就完了。各位高人请指点!!!老姐在这儿万分感谢:)


非常简单的Python 小程序,读取udp数据:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
host = '0.0.0.0'
#host = 'localhost'
port = 10021
s.bind((host, port))
while True:
    data, addr = s.recvfrom(1024) # buffer size is 1024 bytes
    print(data)




补充内容 (2019-9-8 03:18):
更新:在/etc/network/interfaces 里,我加了第二个Interface, address 172.31.252.100    netmask 255.255.0.0 然后就奇迹的一切正常了。我明明以前这样试过不work,怎么现在就行了呢。还是特别感谢大家!!!

上一篇:如何设计文件系统
下一篇:CS专业学生想要丰富简历,应该怎么找project做?
我的人缘0
xieyudi3 2019-8-27 09:26:03 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   41% (100)
 
 
58% (143)    👎
X88 发表于 2019-8-25 10:08
你的ubuntu server现在应该连有两个网卡,分别在两个独立的subnet上:192.168.1.0/24和172.31.0.0/16.

...

设备固定 IP 很常见。比如我的 cable modem 就是固定的 192.168.100.1。一般我在我的网关的 wan 口设置两个 IP,一个由 TWC DHCP 广播分配的公网 IP,一个是手动设置的 192.168.100.2 用于访问 cable modem。
回复

使用道具 举报

我的人缘0
Coherence 2019-8-27 07:47:59 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   91% (61)
 
 
8% (6)    👎
pengzhao0524 发表于 2019-8-25 15:20
我可以ssh那个设备。关于看它的端口。我是用tshark 以及tcpdump,可以看到数据从它的某个port出来。还有 ...

楼上说的两个网卡挺有趣的,涨知识了!楼主可以试试!
回复

使用道具 举报

我的人缘0
xieyudi3 2019-8-27 05:50:09 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   41% (100)
 
 
58% (143)    👎
pengzhao0524 发表于 2019-8-25 00:00
新设备172.31.252.1.如果我的主机的网卡在/24,比如172.31.252.2,没问题。但是我的主机网卡是192.168.1.x, ...

在你的主机的网卡上同时绑定 192.168.1.50/24 和 172.31.252.2/24.
ip addr add 172.31.252.2/24 dev eth0 (eth0 是你的网卡)
回复

使用道具 举报

我的人缘0
baz 2019-8-24 05:11:38 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (102)
 
 
1% (2)    👎
新加的设备 如果是加入 ubuntu server 所在的network 会被分配一个 内网ip地址 192.168.1.xxx
回复

使用道具 举报

我的人缘0
 楼主| pengzhao0524 2019-8-24 05:51:18 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎
baz 发表于 2019-8-24 05:11
新加的设备 如果是加入 ubuntu server 所在的network 会被分配一个 内网ip地址 192.168.1.xxx

这个设备的ip是固定的,172.31.252.X。厂商说,他们的设备都是B class IP. 用户需要把这个设备加入自己的C class the 网络,要自己设置。我再问怎么设置,他们就表示他们不提供这类信息。
回复

使用道具 举报

我的人缘0
aHeliz 2019-8-24 06:04:26 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (177)
 
 
2% (4)    👎
Ping means the server is reachable. When you use recvfrom, do you make sure the server is sending out the message?

Also, have you tried recv(1024)? https://stackoverflow.com/questi ... amming-using-python
回复

使用道具 举报

我的人缘0
 楼主| pengzhao0524 2019-8-24 06:26:03 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎
aHeliz 发表于 2019-8-24 06:04
Ping means the server is reachable. When you use recvfrom, do you make sure the server is sending ou ...

是的,我用tcpdump可以看到数据从那个设备上发送过来。

我只用过1024。我感觉这个影响不大。
回复

使用道具 举报

我的人缘0
 楼主| pengzhao0524 2019-8-24 06:29:47 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎
baz 发表于 2019-8-24 05:11
新加的设备 如果是加入 ubuntu server 所在的network 会被分配一个 内网ip地址 192.168.1.xxx

我们以前加自己的设备,就用network manager ‘nmtui'给新设备一个static ip 192.168.1.x,然后就ok了。但是这个设备的ip是这样的,不知道该怎么办。
回复

使用道具 举报

我的人缘0
baz 2019-8-24 06:32:18 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (102)
 
 
1% (2)    👎
pengzhao0524 发表于 2019-8-24 05:51
这个设备的ip是固定的,172.31.252.X。厂商说,他们的设备都是B class IP. 用户需要把这个设备加入自己的 ...

B级IP是固定first two bytes啊 你这固定三个不就是已经是C级了吗。。。。。。
联入自己的局域网 弄个proxy或者端口转发再去读啊 你直接用python连不到的 或者NAT设置一下  
回复

使用道具 举报

我的人缘0
 楼主| pengzhao0524 2019-8-24 06:52:08 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎
本帖最后由 pengzhao0524 于 2019-8-24 06:54 编辑
baz 发表于 2019-8-24 06:32
B级IP是固定first two bytes啊 你这固定三个不就是已经是C级了吗。。。。。。
联入自己的局域网 弄个pro ...

B级是128.0.0.0 to 191.255.255.255. 这个设备172.31.252.1,广播到172.31.255.255.所以还是B 级。

请问你说的端口转发,能详细说说吗?是设置routing table吗?能给个例子或者相关的文章吗?谢谢

proxy, 还有NAT, 能详细一些吗?谢谢

回复

使用道具 举报

我的人缘0
 楼主| pengzhao0524 2019-8-24 06:53:10 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎
本帖最后由 pengzhao0524 于 2019-8-24 06:55 编辑
pengzhao0524 发表于 2019-8-24 06:52
B级是128.0.0.0 to 191.255.255.255. 这个设备172.31.252.1,广播到172.31.255.255.所以还是B 级。

请 ...

那个nat能详细一些吗?谢谢
回复

使用道具 举报

我的人缘0
 楼主| pengzhao0524 2019-8-24 06:58:55 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   80% (8)
 
 
20% (2)    👎
baz 发表于 2019-8-24 06:32
B级IP是固定first two bytes啊 你这固定三个不就是已经是C级了吗。。。。。。
联入自己的局域网 弄个pro ...

多谢回复,您能解释的再详细一些吗?或者给个帖子,link 什么的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法 - 不要多加空格: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版||一亩三分地

GMT+8, 2019-9-21 06:24

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表