2

http192 168 1 1

易度->OA 实现工作流消息提醒

import urllib2

u=CONTEXT.MD["zhihui"]

for a in u:

try:

url="网页链接"

url=url+"?user="+ a[6:]

s = urllib2.urlopen(url).read()

except urllib2.HTTPError,e:

print e.code

自从把我们的一款控制器改成WiFi无线输入输出控制模块,与客户的生产系统配套,用于自动化生产,

基本上天天提心吊胆,生怕接到客户的反馈问题,一旦反馈问题都是影响生产甚至损坏生产设备的大问题,都会造成用户的很不愉快,而我们可能需要配合用户通宵达旦分析并解决问题。

问题在于,我们的设备使用了不少外购的配件,在客户严格控制成本的前提下,即使不计成本以保证产品可靠性,也很难保证外购的配件不出问题。

况且还跟用户的配置、使用有很大关系。

前一段时间,就协助客户处理了IP冲突、DHCP地址池与固定IP地址段冲突,甚至上位机的socket超时时间设置不合理等导致系统不能正常的问题,据说这个例子的用户非常不满意...

当这样的情况下,当客户再一次反馈又有一台设备断线,很长时间连接不上,导致产线停止运行...,换作是你们,你们会不会脑瓜子嗡嗡的,颤抖着双手远程连接客户的电脑协助查找问题。

打开wireshark抓包,看到满屏黑色的错误数据帧,在上位机软件作为TCP客户端向服务端发送请求之后,又立即向服务器发送了TCP ZeroWindow的报文,告诉服务端接收缓存满,不能接收数据。

看来是客户自己开发的上位机软件存在问题,找客户要来上位机代码之后,发现了其中的问题:

if(in_list ==NULL){

socket.Send("http://192.168.10.108/get.cgi?t=all")

}

在这一条代码中,上位机软件通过socket向服务端发送了http请求,此时服务端会返回http影应并放在接收缓存。

但是上位机并没有通过socket.Receive从缓存取数据进行处理,从而导致接收缓存被占满,出现了ZeroWindow的通信错误,并最终导致了服务端的TCP通信受影响,出现断线故障。

Nginx如何限制ip访问?

在一个请求闯过之前的postread阶段,rewrite阶段,find_config阶段,preaccess阶段后终于来到了Access阶段了。

Access阶段主要就是控制请求是否可以继续向下访问的。

在这个阶段第一个要经过的就是Access模块。

想对IP 进行访问控制?可以在Access模块 控制哪些IP可以访问一些URL,哪些IP不可以访问一些URL。

生效阶段:NGX_HTTP_ACCESS_PHASE阶段

模块:http_access_module

默认编译进Nginx的。如果不想编译进Nginx,可以通过

--without-http_access_module来禁用该模块。

生效范围:进入access阶段前不生效。也就是说虽然你限制了某ip的访问,但是前面的limit_conn,limit_req还是会生效的。

语法: allow $ip | CIDR | unix:|all;

上下文:HTTP,server,location,limit_except

语法: deny $ip | CIDR | unix:|all;

上下文:HTTP,server,location,limit_except

示例:

location / {

deny 192.168.1.1; // 拒绝某个ip的访问

allow 网页链接; // 允许一段地址的访问

allow 2001:0db8::/32; // 还可以跟IPv6的格式

deny all; // 拒绝所有

}

需要注意的是 这几条里是顺序执行的,当满足到其中一条就会break了。

access模块是一种非常简单的控制用户访问的一种方法。

对于我们控制一些服务的访问却是非常有用的。

你学废了吗?

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2141338/
1
上一篇html网页制作实例
下一篇 sp3升级包(升级sp1)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部