让风了还有别的wwW2211az风暴要塞副本入口在哪吗,wlan的网络2211azcom不支持是吗

您是不是在找:
买家还在看:
当前位置:
关注行业资讯
IC 原装 ICL322 ICL32211AZ
detail3e达人选购¥0.35¥0.65¥0.10¥7.00¥700.00
detail3e周边优质供应商广东省深圳市广东省深圳市广东省深圳市广东省深圳市
同参数产品
同参数产品
同参数产品
同参数产品
同参数产品
慧聪网厂家深圳市德力周电子有限公司为您提供IC 原装 ICL322 ICL32211AZ的详细产品价格、产品图片等产品介绍信息,您可以直接联系厂家获取IC 原装 ICL322 ICL32211AZ的具体资料,联系时请说明是在慧聪网看到的。
detail3e相关商品推荐¥0.35¥0.65¥0.10¥7.00¥700.00¥110.00¥¥3280.00热门商品推荐 ¥0.35 ¥0.65 ¥0.10 ¥7.00 ¥700.00 ¥110.00 ¥ ¥3280.00
detail3e店内热门商品¥8.10¥8.10¥20.97¥33.20
detail3e通信IC相关资源通信IC热门产品搜索更多&热门商机最新商机
提示:您在慧聪网上采购商品属于商业贸易行为。以上所展示的信息由卖家自行提供,内容的真实性、准确性和合法性由发布卖家负责,请意识到互联网交易中的风险是客观存在的。推荐使用,保障您的交易安全!
所在地:广东省&&
联系人:周志良 & 先生
075 ******
135 ******
请供应商联系我
手机号不能为空
姓名不能为空
请供应商联系我
您对该公司的咨询信息已成功提交请注意接听供应商电话。
detail3e关于IC
detail3e您是不是在找
您采购的产品:
请输入采购产品
您的手机号码:
请输入手机号码
*采购产品:
请输入采购产品
*采购数量/单位:
请输入采购数量
请选择单位
*采购截止日期:
请输入正确的手机号码
请输入验证码
*短信验证码:
<input id="valid_Code1" maxlength="6" placeholder="请输入验证码" name="VALIDCODE" class="codeInput" onkeyup="this.value=this.value.replace(/\D/g,'')" onkeypress="if(event.keyCode
57) event.returnValue =" type="text">
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
发送成功!
慧聪已收到您的需求,我们会尽快通知卖家联系您,同时会派出采购专员1对1为您提供服务,请您耐心等待!
135 ******
联系人:周志良&经理
公司名称:深圳市德力周电子有限公司
备注:点击关注按钮后才可自动收到卖家电话
请输入正确的手机号码
请输入验证码
*短信验证码:
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
按字母分类 :&figure&&img src=&https://pic1.zhimg.com/v2-ad2e0e5ba263e_b.jpg& data-rawwidth=&551& data-rawheight=&497& class=&origin_image zh-lightbox-thumb& width=&551& data-original=&https://pic1.zhimg.com/v2-ad2e0e5ba263e_r.jpg&&&/figure&&p&有段时间没更新专栏文章了,前两篇讲ACL和四层碎片关系、BGP pre-bestpath cost community的技术文章有人说太过深奥,也有人说工作中不太会碰到,那今天就来一篇通俗易懂又兼具实用性的,对,就是MTU和ping。&/p&&p&MTU, (Maximum Transmission Unit 最大传输单元)是干什么用的大家都懂,想必各位也都知道可以用ping命令来测试网络设备MTU的大小来达到排错的目的,所以关于MTU和ping的具体原理就不讲了,今天主要讲下不同厂商设备(Cisco和Juniper)对待MTU的不同“态度”以及在C家和J家的设备商上使用ping这个命令时的一些细微差异。 &/p&&p&先来说说Juniper。J家的Junos是搭建在FreeBSD上的(更精确点说,Junos的控制平面就是FreeBSD的kernal)。FreeBSD和Windows一样,用户在用ping这个命令的时候,实际的ping包大小是不包含20 Byte的IP header和8 Byte的ICMP header的。也就是说操作系统会自动给你的ping包加上这28 Byte,然后再将你的ping包发出去。什么意思呢? 我们来做个实验:&/p&&p&在Windows上做三次ping,分别指定ping包大小为和1472Byte,
三次ping均开启df-bit。&/p&&p&&b&Windows&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&X:\&ping 192.168.1.1 -l 1500 -f
Pinging 192.168.1.1 with 1500 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
X:\&ping 192.168.1.1 -l 1473 -f
Pinging 192.168.1.1 with 1473 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
X:\&ping 192.168.1.1 -l 1472 -f
Pinging 192.168.1.1 with 1472 bytes of data:
Reply from 192.168.1.1: bytes=1472 time=25ms TTL=255
Reply from 192.168.1.1: bytes=1472 time=4ms TTL=255
Reply from 192.168.1.1: bytes=1472 time=4ms TTL=255
Reply from 192.168.1.1: bytes=1472 time=3ms TTL=255
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 25ms, Average = 9ms
&/code&&/pre&&/div&&p&为什么ping包大小为 Byte的时候ping不通呢?原理前面提到了,这是因为Windows“偷偷”地给你的ping包加上了28 Byte。所以你前两次ping包的实际大小为 Byte,已经超出了默认的MTU (1500), 并且因为开启了df-bit,导致ping包无法被分片而被丢弃。而第三次当你指定ping包为1472的时候,加上windows给你的加上的28 Byte, 你的实际PING包大小刚好等于1500 byte,所以ping 通了。&/p&&p&同样的原理也适用于Junos:&/p&&p&&b&&u&JUNOS&/u&&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&root@Junos# run ping 10.10.1.2 size 1500 do-not-fragment rapid
PING 10.10.1.2 (10.10.1.2): 1500 data bytes
ping: sendto: Message too long
.ping: sendto: Message too long
.ping: sendto: Message too long
.ping: sendto: Message too long
.ping: sendto: Message too long
— 10.10.1.2 ping statistics —
5 packets transmitted, 0 packets received, 100% packet loss
root@Junos# run ping 10.10.1.2 size 1473 do-not-fragment rapid
PING 10.10.1.2 (10.10.1.2): 1473 data bytes
ping: sendto: Message too long
.ping: sendto: Message too long
.ping: sendto: Message too long
.ping: sendto: Message too long
.ping: sendto: Message too long
— 10.10.1.2 ping statistics —
5 packets transmitted, 0 packets received, 100% packet loss
root@Junos# run ping 10.10.1.2 size 1472 do-not-fragmentrapid
PING 10.10.1.2 (10.10.1.2): 1472 data bytes
— 10.10.1.2 ping statistics —
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.861/0.908/1.065/0.079 ms
&/code&&/pre&&/div&&p&&br&&/p&&p&但是思科不一样,不论是C家的IOS还是IOS-XR,用户所指定ping包的大小已经包含了那个多出来的28byte (20 byte的IP header,8 byte 的ICMP header),也就是说在C家的设备上的ping才是包含了各种header的完整的ping。&/p&&p&下面分别在C家的IOS和IOS-XR来做测试,测试结果证明了这点。&/p&&p&&b&&u&IOS&/u&&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Router#ping 10.10.1.1 size 1500 df-bit
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 10.10.1.1, timeout is 2 seconds:
Packet sent with the DF bit set
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
Router#ping 10.10.1.1 size 1501 df-bit
Type escape sequence to abort.
Sending 5, 1501-byte ICMP Echos to 10.10.1.1, timeout is 2 seconds:
Packet sent with the DF bit set
Success rate is 0 percent (0/5)
&/code&&/pre&&/div&&p&&b&&u&IOS XR&/u&&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&RP/0/RP0/CPU0:P2#ping 20.20.20.1 size 1500 donnotfrag
7 07:13:57.440 UTC
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 20.20.20.1, timeout is 2 seconds:
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
RP/0/RP0/CPU0:P2#ping 20.20.20.1 size 1501 donnotfrag
7 07:14:09.290 UTC
Type escape sequence to abort.
Sending 5, 1501-byte ICMP Echos to 20.20.20.1, timeout is 2 seconds:
Success rate is 0 percent (0/5)
&/code&&/pre&&/div&&p&前面讲到的是3层的ping包,在2层环境中,数据包还会被封装上一个14byte的Ethernet Header,因为这个14byte,导致端口MTU在C家和J家的设别上又有十分微妙的不同。&/p&&p&运行IOS的C家设备的端口MTU是不包括这个14byte的,但是IOS-XR和JUNOS却又相反,啥意思呢?还是举例来看吧:&/p&&p&&b&&u&Cisco IOS&/u&&/b&&/p&&p&router#sh ip interface g0/1 | i MTU&br&&b&MTU is 1500 bytes&/b&&/p&&p&&b&&u&Cisco IOS XR&/u&&/b&&/p&&p&RP/0/RP0/CPU0:router#sh ip interface g0/1/0/1 | i MTU&br&&b&MTU is
is available to IP)&/b&&/p&&p&&br&&/p&&p&&b&&u&JUNOS&/u&&/b&&/p&&p&root@router# run show interfaces ge-0/0/1 | match MTU&br&Link-level type: Ethernet, &b&MTU: 1514&/b&, Speed: 1000mbps, BPDU Error: None,MAC-REWRITE Error: None, Loopback: Disabled,&br&Protocol inet, MTU: 1500&br&Protocol iso, MTU: 1497&br&Protocol mpls, MTU: 1488&br&Protocol multiservice, MTU: Unlimited&/p&&p&&br&&/p&&p&另外一点,在你手动改变端口MTU大小的时候,IOS, IOS-XR, JUNOS之间也有很大的差异。举个例子,在使用dot1q的环境下,dot1q会给包额外加入一个4byte的VLAN tag,加上之前提到的2层封装的14byte,这样MTU变成了1518byte,在对待这个4byte的tag时,IOS和JUNOS不会理会它,你必须手添加这4个byte,而IOS-XR则不需要。&/p&&p&啥意思呢?也就是说在使用dot1q的环境中,如果你现在在IOS或者JUNOS设备上手动把端口MTU从1500改成1514,IOS和JUNOS会继续使用1514,不做任何改变。而IOS-XR不同,IOS-XR会主动为子端口(什么?为啥是子端口?你忘了啥叫“独臂路由”了吗)加上4byte,将子端口的MTU变成1518byte (主端口的MTU依然是1514byte)。&/p&&p&&br&&/p&&p&&b&&u&Cisco IOS&/u&&/b&&/p&&p&router#sh interfaces g0/1 | i MTU&br&&b&MTU 1514 bytes&/b&, BW 100000 Kbit, DLY 100 usec,&br&router#sh ip interface g0/1.1 | i MTU&br&&b&MTU is 1514 bytes&/b&&/p&&p&&b&&u&JUNOS&/u&&/b&&/p&&p&root@router# run show interfaces ge-0/0/1 | match MTU&br&Link-level type: Ethernet, &b&MTU: 1514,&/b& Speed: 1000mbps, BPDU Error: None,MAC-REWRITE Error: None, Loopback: Disabled,&br&Protocol inet, MTU: 1500&br&Protocol iso, MTU: 1497&br&Protocol mpls, MTU: 1488&br&Protocol multiservice, MTU: Unlimited&/p&&p&&b&&u&Cisco IOS XR&/u&&/b&&/p&&p&&b&RP/0/RP0/CPU0:router#sh ip int g0/1/0/9 | i MTU&/b&&br&Wed Oct
6 21:35:07.274 CLT&br&&b&MTU is
is available to IP)&/b&&/p&&p&&b&RP/0/RP0/CPU0:router#sh ip int g0/1/0/9.1 | i MTU&/b&&br&Wed Oct
6 21:35:11.972 CLT&br&&b&MTU is
is available to IP)&/b& &b&---------&/b& &b&看到变化了吗?&/b&&/p&&p&&br&&/p&&p&&b&不要小看这些细小的差距,细微之处见真功夫,任何涉及到MTU的网络问题都不简单,与大家共勉。&/b&&/p&
有段时间没更新专栏文章了,前两篇讲ACL和四层碎片关系、BGP pre-bestpath cost community的技术文章有人说太过深奥,也有人说工作中不太会碰到,那今天就来一篇通俗易懂又兼具实用性的,对,就是MTU和ping。MTU, (Maximum Transmission Unit 最大传输单元…
&figure&&img src=&https://pic3.zhimg.com/v2-78b878ed63babb7fb1f9d_b.jpg& data-rawwidth=&550& data-rawheight=&312& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic3.zhimg.com/v2-78b878ed63babb7fb1f9d_r.jpg&&&/figure&&blockquote&&b&&i&注:本文在
&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/oHeudgYJkSikGuUMU7j30w& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&InfoQ 公众号&/a&; &a href=&http://link.zhihu.com/?target=https%3A//m.weibo.cn/status/4728& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&InfoQ 微博&/a&; &a href=&http://link.zhihu.com/?target=http%3A//geek.csdn.net/news/detail/238476& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CSDN&/a&
进行发表,欢迎关注和转发!&/i&&/b&&/blockquote&&p&&br&&/p&&p&&b&虽说干的是信息化智能化的行当,但每个 IT 工程师都必定踩过“IT 系统不智能”的坑。就拿企业组建局域网来说,为了对网络接入用户身份进行确认,确保用户权限不受办公地点变更的影响,许多 IT 工程师都习惯开启 “手动模式”和苦逼的“加班模式”。&/b&&/p&&p&&b&
其实,企业组建局域网的配置也是有“套路”的。IT 新人也能现学现用,轻松几步,教你飞速提高企业网络准入的安全性。&/b&&/p&&h2&&b&
&/b&&/h2&&hr&&p&对于企业 IT 工程师来说,什么样的企业网络是我们需要的呢,是快捷,还是安全,让我们来想象一下。&/p&&ul&&li&&b&员工入职即生成个人账户,一套账户“走遍天下”,包含接入网络,OA,内网,ERP,甚至打印和复印等;&/b&&/li&&li&&b&支持多个终端,在手机、笔记本、台式机上登录,不论在公司什么位置,你有拥有相同的网络权限;&/b&&/li&&li&&b&员工调岗或者更换部门,仅需再组织架构中进行调整,这个“新”员工自动获取新部门的网络权限;&/b&&/li&&li&&b&员工离职,仅需要将账号“一键禁用”。好了,所有的权限都关了,“苍蝇”你都别想飞进来。&/b&&/li&&/ul&&p&有句话说“理想很丰满,现实很骨干‘’,但是我在这里想说,这都不是梦,资深 IT 来告诉你理想的实现方法。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-a06fbebdec83eb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&367& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-a06fbebdec83eb_r.jpg&&&/figure&&ul&&li&基于 802.1x 协议,实现端口访问控制和认证;&/li&&li&搭建 Windows Server 系统环境,实现 AD+DHCP+DNS,这部分搭建网上大把大把的教程,这部分忽略不在进行赘述;&/li&&li&NPS(Radius),用户认证管理管理;&/li&&li&选择支持 802.1x 协议认证网络设备,实现动态 VLAN 实现获得各终端网络登录具有各自网络权限。&/li&&/ul&&p&组网环境(试验样例,最终根据自己实际情况决定)&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0dbb9e5efa2a7c8b0a10f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&259& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-0dbb9e5efa2a7c8b0a10f_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-8edbcf4374_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&402& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-8edbcf4374_r.jpg&&&/figure&&p&重点 1:调整用户所在安全组后,如何继承了划分 VLAN 的网络权限?答:在核心网络交换机中把划分的 VLAN 一定要对应到用户所在安全组,如上图。&/p&&h2&&b&
&/b&&/h2&&hr&&p&本文主要介绍关键配置:有线网络设备上开启 802.1X 认证和认证服务器 NPS(Radius) 的配置,其他搭建过程请参照文章底部附录。&/p&&p&1 . 接入交换机(WS-C2960X-48LPS-L)开启 802.1x 认证,以 Cisco 2960 为例(注:不同 IOS 版本命令略有差异)
&/p&&p&第一步:进入配置模式开启 802.1x 认证、指定 radius-server&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&aaa new-model
! 启用 aaa
aaa authentication dot1x default group radius
! dot1x 使用 radius 做认证
aaa authorization network default group radius
! 使用 802.1x 协议去动态分配 vlan 的话, 上边的这句命令一定要有
dot1x system-auth-control
! 允许 802.1x port-based 认证
dot1x guest-vlan supplicant
! 允许交换机在端口 802.1x 认证失败后, 指定 vlan 到 guest-vlan
radius-server host IP auth-port 1812 acct-port 1813 key Password
! 指定 radius 服务器 IP、端口号和进行交互的使用的密码
radius-server retry method reorder
! 允许有多个 radius 服务器冗余切换
radius-server timeout 10
! 指定 radius 服务认证超时时间
&/code&&/pre&&/div&&p&&b&重点 2:不同用户安全组如何获得动态 VLAN 地址?&/b&&/p&&p&&b&答:&/b& 把预规划好的所有 VLAN 配置到每台接入交换机和无线 AC 控制器上,并在核心交换机中配置指向到 DHCP 服务器地址 。&/p&&p&第二步进入网络端口下启用 802.1x 配置&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&interface GigabitEthernet1/0/46
switchport mode access
! dot1x 指定 vlan, switchport mode 必须为 access
switchport voice vlan 195
! dot1x 指定语音 vlan
authentication event fail action authorize vlan 107
! 认证失败获得隔离 vlan
authentication event no-response action authorize vlan 107
! 认证无响应获得隔离 vlan
authentication port-control auto
! 端口认证控制
authentication timer inactivity 30
! 认证响应超时
dot1x pae authenticator
! 认证端口开启
&/code&&/pre&&/div&&p&2 . NPS(Radius)策略配置(注意了!这个方案最重要的 12 步,一定要注意!)
&/p&&p&a. 使用配置向导新建连接策略&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1e787ed5ad7ac_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&410& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-1e787ed5ad7ac_r.jpg&&&/figure&&p&b. 添加 NPS 客户端(接入交换机和无线 AC),输入交接机 IP 和与其认证交互的 Password&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b020a850b828a2bbd17f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&592& data-rawheight=&559& class=&origin_image zh-lightbox-thumb& width=&592& data-original=&https://pic2.zhimg.com/v2-b020a850b828a2bbd17f_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-4cf1badd18c6bec_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&685& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-4cf1badd18c6bec_r.jpg&&&/figure&&p&c. 选择 EAP 类型为 Microsoft: 受保护的 EAP(PEAP)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-dce640b2e90_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&621& data-rawheight=&578& class=&origin_image zh-lightbox-thumb& width=&621& data-original=&https://pic1.zhimg.com/v2-dce640b2e90_r.jpg&&&/figure&&p&d. NPS(Radius) 服务器申请计算机证书&/p&&figure&&img src=&https://pic2.zhimg.com/v2-356d4a66e6da_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&617& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-356d4a66e6da_r.jpg&&&/figure&&p&e. 添加账号认证系统 AD 中的用户 test01 所在部门“全局作用域安全组”&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f684b96ccc175a7fb659_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&597& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-f684b96ccc175a7fb659_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-d410ecaaafc8a4b51dbe60_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&589& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-d410ecaaafc8a4b51dbe60_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-3de040c8055fcb2c75c3e4bca25aea4d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&504& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-3de040c8055fcb2c75c3e4bca25aea4d_r.jpg&&&/figure&&p&f. 配置网络策略,动态 VLAN 和访问控制列表(ACL)&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2e4c3989b8bbde55d7763_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&605& data-rawheight=&569& class=&origin_image zh-lightbox-thumb& width=&605& data-original=&https://pic4.zhimg.com/v2-2e4c3989b8bbde55d7763_r.jpg&&&/figure&&p&Tunnel-Type:
VLANTunnel-Medium-Type:
802.1xTunnel-Pvt-Group-ID:
100 (为 VLAN ID),这样不同用户安全组对应不同网络 VLAN 即可得到不同的网络访问权限,从而大大减少网络层对终端接入设备访问权限的频繁设置。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-bb0eab6ad69fd4a851cd2a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&627& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-bb0eab6ad69fd4a851cd2a_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-63eac0a9d61f56fc92d821cba4fa42f3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&609& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-63eac0a9d61f56fc92d821cba4fa42f3_r.jpg&&&/figure&&p&g. 配置完成,NPS(Radius)客户端显示状态&/p&&figure&&img src=&https://pic4.zhimg.com/v2-683e1ed19c113dc82ef77_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&187& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-683e1ed19c113dc82ef77_r.jpg&&&/figure&&p&h. 配置完成,连接请求策略显示状态&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fbdf4bee08057_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&221& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-fbdf4bee08057_r.jpg&&&/figure&&p&i. 配置完成,网络策略显示状态&/p&&figure&&img src=&https://pic3.zhimg.com/v2-edfe0d48d64febf53ade8fa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&322& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-edfe0d48d64febf53ade8fa_r.jpg&&&/figure&&p&j. 注意:网络策略中,通过配置向导创建的默认是“windows 组”,需要手动改为“用户组”,后续熟练后可对 NPS(Radius)客户端、连接请求策略和网络策略分开逐一按需求创建。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-ad7ede6dda9d09c86b18c3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&281& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-ad7ede6dda9d09c86b18c3_r.jpg&&&/figure&&p&k. 注意:连接请求策略,如无线和有线 IP 段分开,需分开创建,如不分开,创建一条把无线和有线都勾选即可。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c9d892ddfb34f642fd1f811d874c56af_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-c9d892ddfb34f642fd1f811d874c56af_r.jpg&&&/figure&&p&l. 其他部门网络策略,可右键选择重复策略进行创建&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c6f7132fcbf3cd09fb26_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&325& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-c6f7132fcbf3cd09fb26_r.jpg&&&/figure&&p&至此基于 802.1x+AD+DHCP+NPS 认证实现动态 VLAN 配置完成,可开始在 PC、移动客户端等设备接入网络,使用域账号及密码进行登录尝试。&/p&&p&方案验证
&/p&&p&m. 开始菜单运行输入 services.msc 打开本地服务设置&/p&&figure&&img src=&https://pic2.zhimg.com/v2-0bd593d681e2d7c0ad1346babe1724ed_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&391& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-0bd593d681e2d7c0ad1346babe1724ed_r.jpg&&&/figure&&p&a. 设置有线网络(Wired AutoConfig)和无线网络 (WLAN AutoConfig) 服务开机自动启动 802.1x 服务&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fa19d5fdce5ef_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&346& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-fa19d5fdce5ef_r.jpg&&&/figure&&p&b. 有线网卡属性“身份验证”选项,启用 802.1X 和受保护的 EAP 选项,然后打开“设置”EAP 属性,取消“验证证书服务器”,点击配置属性,将自动使用的登录和密码选项取消,然后确定保存关闭。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fd7632c1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&356& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-fd7632c1_r.jpg&&&/figure&&p&c. 返回网卡属性“身份验证”选项,打开“其他设置”,勾选“指定身份验证模式”,确定保存。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-107bf9cf6f7f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&445& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-107bf9cf6f7f_r.jpg&&&/figure&&p&d. 待电脑屏幕右下角,弹出如下窗口选择点击左键,&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5f68f7fbe289e71206d7a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&495& data-rawheight=&139& class=&origin_image zh-lightbox-thumb& width=&495& data-original=&https://pic3.zhimg.com/v2-5f68f7fbe289e71206d7a_r.jpg&&&/figure&&p&e. 弹出如下网络身份验证窗口,输入自己公司的域账号 (或用户名) 和密码点击确定即可。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fac5470cd37dbb1aba463ea4b3c589ec_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&561& data-rawheight=&303& class=&origin_image zh-lightbox-thumb& width=&561& data-original=&https://pic1.zhimg.com/v2-fac5470cd37dbb1aba463ea4b3c589ec_r.jpg&&&/figure&&p&注:使用无线的用户需先配置连接网络的 SSID,然后对其进行身份验证设置再连接登录。推荐以上所有设置规则在 AD 中使用组策略推送配置,方便域账号登录系统自动连接网络。&/p&&p&Mac 和移动端(Android 和 iOS)的连接方式也很简单,不在这里进行重复赘述。到这里,我们整个方案就已经介绍完成了,希望能帮助企业里 IT 同学。如果在实施过程中有任何问题,请在知乎上联系五阿哥运维部的同学,他必会倾力相助。&/p&&p&&b&附录:&/b&&/p&&p&方案涉及 AD+DNS 搭建请参照:&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&zhuanlan.zhihu.com/p/29&/span&&span class=&invisible&&706040&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&zhuanlan.zhihu.com/p/29&/span&&span class=&invisible&&706120&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&zhuanlan.zhihu.com/p/29&/span&&span class=&invisible&&706174&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&DHCP 搭建请参照:&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&zhuanlan.zhihu.com/p/29&/span&&span class=&invisible&&706251&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&
作者介绍&/h2&&hr&&p&王志强(Neeke),五阿哥钢铁电商平台(&a href=&http://link.zhihu.com/?target=http%3A//www.wuage.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&wuage.com&/a&) 运维部 IT 高级工程师,2016 年加入五阿哥钢铁电商平台,负责公司 IT 相关工作,曾在阿里巴巴、高德等知名互联网公司负责 IT 工作,在企业网络建设拥有 10 年资深的经验。&/p&
注:本文在 ; ;
进行发表,欢迎关注和转发! 虽说干的是信息化智能化的行当,但每个 IT 工程师都必定踩过“IT 系统不智能”的坑。就拿企业组建局域网来说,为了对网络接入用户身份进行确认,确保用户权限不受办公地点变更的影…
&figure&&img src=&https://pic1.zhimg.com/v2-451a6af74df99e662aea49782ebd0567_b.jpg& data-rawwidth=&987& data-rawheight=&674& class=&origin_image zh-lightbox-thumb& width=&987& data-original=&https://pic1.zhimg.com/v2-451a6af74df99e662aea49782ebd0567_r.jpg&&&/figure&&p&漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果。本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-451a6af74df99e662aea49782ebd0567_b.jpg& data-rawwidth=&987& data-rawheight=&674& class=&origin_image zh-lightbox-thumb& width=&987& data-original=&https://pic4.zhimg.com/v2-451a6af74df99e662aea49782ebd0567_r.jpg&&&/figure&&p&matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。&/p&&p&matplotlib有一套完全仿照MATLAB的函数形式的绘图接口,十分方便实用。下面我们一步步使用它来绘出上面的图片。&/p&&h2&&b&准备工作&/b&&/h2&&p&在上文中(&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&量化回测的基础:干净的,准确的历史股票数据&/a&),我们已经为大家准备好了日k线数据,大家可以去下载。下面我们来为绘图做一些准备工作:&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&kn&&from&/span& &span class=&nn&&pandas&/span& &span class=&kn&&import&/span& &span class=&n&&DataFrame&/span&&span class=&p&&,&/span& &span class=&n&&Series&/span&
&span class=&kn&&import&/span& &span class=&nn&&pandas&/span& &span class=&kn&&as&/span& &span class=&nn&&pd&/span&&span class=&p&&;&/span& &span class=&kn&&import&/span& &span class=&nn&&numpy&/span& &span class=&kn&&as&/span& &span class=&nn&&np&/span&
&span class=&kn&&import&/span& &span class=&nn&&matplotlib.pyplot&/span& &span class=&kn&&as&/span& &span class=&nn&&plt&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib&/span& &span class=&kn&&import&/span& &span class=&n&&dates&/span& &span class=&k&&as&/span& &span class=&n&&mdates&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib&/span& &span class=&kn&&import&/span& &span class=&n&&ticker&/span& &span class=&k&&as&/span& &span class=&n&&mticker&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib.finance&/span& &span class=&kn&&import&/span& &span class=&n&&candlestick_ohlc&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib.dates&/span& &span class=&kn&&import&/span& &span class=&n&&DateFormatter&/span&&span class=&p&&,&/span& &span class=&n&&WeekdayLocator&/span&&span class=&p&&,&/span& &span class=&n&&DayLocator&/span&&span class=&p&&,&/span& &span class=&n&&MONDAY&/span&&span class=&p&&,&/span&&span class=&n&&YEARLY&/span&
&span class=&kn&&from&/span& &span class=&nn&&matplotlib.dates&/span& &span class=&kn&&import&/span& &span class=&n&&MonthLocator&/span&&span class=&p&&,&/span&&span class=&n&&MONTHLY&/span&
&span class=&kn&&import&/span& &span class=&nn&&datetime&/span& &span class=&kn&&as&/span& &span class=&nn&&dt&/span&
&span class=&kn&&import&/span& &span class=&nn&&pylab&/span&
&span class=&n&&daylinefilespath&/span& &span class=&o&&=&/span& &span class=&s1&&'G:&/span&&span class=&se&&\\&/span&&span class=&s1&&dayline&/span&&span class=&se&&\\&/span&&span class=&s1&&'&/span&
&span class=&n&&stock_b_code&/span& &span class=&o&&=&/span& &span class=&s1&&'000001'&/span& &span class=&c1&&#平安银行&/span&
&span class=&n&&MA1&/span& &span class=&o&&=&/span& &span class=&mi&&10&/span&
&span class=&n&&MA2&/span& &span class=&o&&=&/span& &span class=&mi&&50&/span&
&span class=&n&&startdate&/span& &span class=&o&&=&/span& &span class=&n&&dt&/span&&span class=&o&&.&/span&&span class=&n&&date&/span&&span class=&p&&(&/span&&span class=&mi&&2016&/span&&span class=&p&&,&/span& &span class=&mi&&6&/span&&span class=&p&&,&/span& &span class=&mi&&29&/span&&span class=&p&&)&/span&
&span class=&n&&enddate&/span& &span class=&o&&=&/span& &span class=&n&&dt&/span&&span class=&o&&.&/span&&span class=&n&&date&/span&&span class=&p&&(&/span&&span class=&mi&&2017&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&mi&&30&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&readstkData&/span&&span class=&p&&(&/span&&span class=&n&&rootpath&/span&&span class=&p&&,&/span& &span class=&n&&stockcode&/span&&span class=&p&&,&/span& &span class=&n&&sday&/span&&span class=&p&&,&/span& &span class=&n&&eday&/span&&span class=&p&&):&/span&
&span class=&n&&returndata&/span& &span class=&o&&=&/span& &span class=&n&&pd&/span&&span class=&o&&.&/span&&span class=&n&&DataFrame&/span&&span class=&p&&()&/span&
&span class=&k&&for&/span& &span class=&n&&yearnum&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span&&span class=&nb&&int&/span&&span class=&p&&((&/span&&span class=&n&&eday&/span& &span class=&o&&-&/span& &span class=&n&&sday&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&days&/span& &span class=&o&&/&/span& &span class=&mf&&365.25&/span&&span class=&p&&)&/span&&span class=&o&&+&/span&&span class=&mi&&1&/span&&span class=&p&&):&/span&
&span class=&n&&theyear&/span& &span class=&o&&=&/span& &span class=&n&&sday&/span& &span class=&o&&+&/span& &span class=&n&&dt&/span&&span class=&o&&.&/span&&span class=&n&&timedelta&/span&&span class=&p&&(&/span&&span class=&n&&days&/span& &span class=&o&&=&/span& &span class=&n&&yearnum&/span& &span class=&o&&*&/span& &span class=&mi&&365&/span&&span class=&p&&)&/span&
&span class=&c1&&# build file name&/span&
&span class=&n&&filename&/span& &span class=&o&&=&/span& &span class=&n&&rootpath&/span&
&span class=&o&&+&/span& &span class=&n&&theyear&/span&&span class=&o&&.&/span&&span class=&n&&strftime&/span&&span class=&p&&(&/span&&span class=&s1&&'%Y'&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s1&&'&/span&&span class=&se&&\\&/span&&span class=&s1&&'&/span& &span class=&o&&+&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&stockcode&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&zfill&/span&&span class=&p&&(&/span&&span class=&mi&&6&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s1&&'.csv'&/span&
&span class=&k&&try&/span&&span class=&p&&:&/span&
&span class=&n&&rawdata&/span& &span class=&o&&=&/span& &span class=&n&&pd&/span&&span class=&o&&.&/span&&span class=&n&&read_csv&/span&&span class=&p&&(&/span&&span class=&n&&filename&/span&&span class=&p&&,&/span& &span class=&n&&parse_dates&/span& &span class=&o&&=&/span& &span class=&bp&&True&/span&&span class=&p&&,&/span& &span class=&n&&index_col&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&n&&encoding&/span& &span class=&o&&=&/span& &span class=&s1&&'gbk'&/span&&span class=&p&&)&/span&
&span class=&k&&except&/span& &span class=&ne&&IOError&/span&&span class=&p&&:&/span&
&span class=&k&&raise&/span& &span class=&ne&&Exception&/span&&span class=&p&&(&/span&&span class=&s1&&'IoError when reading dayline data file: '&/span& &span class=&o&&+&/span& &span class=&n&&filename&/span&&span class=&p&&)&/span&
&span class=&n&&returndata&/span& &span class=&o&&=&/span& &span class=&n&&pd&/span&&span class=&o&&.&/span&&span class=&n&&concat&/span&&span class=&p&&([&/span&&span class=&n&&rawdata&/span&&span class=&p&&,&/span& &span class=&n&&returndata&/span&&span class=&p&&])&/span&
&span class=&c1&&# Wash data&/span&
&span class=&n&&returndata&/span& &span class=&o&&=&/span& &span class=&n&&returndata&/span&&span class=&o&&.&/span&&span class=&n&&sort_index&/span&&span class=&p&&()&/span&
&span class=&n&&returndata&/span&&span class=&o&&.&/span&&span class=&n&&index&/span&&span class=&o&&.&/span&&span class=&n&&name&/span& &span class=&o&&=&/span& &span class=&s1&&'DateTime'&/span&
&span class=&n&&returndata&/span&&span class=&o&&.&/span&&span class=&n&&drop&/span&&span class=&p&&(&/span&&span class=&s1&&'amount'&/span&&span class=&p&&,&/span& &span class=&n&&axis&/span&&span class=&o&&=&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&n&&inplace&/span& &span class=&o&&=&/span& &span class=&bp&&True&/span&&span class=&p&&)&/span&
&span class=&n&&returndata&/span&&span class=&o&&.&/span&&span class=&n&&columns&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&s1&&'Open'&/span&&span class=&p&&,&/span& &span class=&s1&&'High'&/span&&span class=&p&&,&/span& &span class=&s1&&'Close'&/span&&span class=&p&&,&/span& &span class=&s1&&'Low'&/span&&span class=&p&&,&/span& &span class=&s1&&'Volume'&/span&&span class=&p&&]&/span&
&span class=&n&&returndata&/span& &span class=&o&&=&/span& &span class=&n&&returndata&/span&&span class=&p&&[&/span&&span class=&n&&returndata&/span&&span class=&o&&.&/span&&span class=&n&&index&/span& &span class=&o&&&&/span& &span class=&n&&eday&/span&&span class=&o&&.&/span&&span class=&n&&strftime&/span&&span class=&p&&(&/span&&span class=&s1&&'%Y-%m-&/span&&span class=&si&&%d&/span&&span class=&s1&&'&/span&&span class=&p&&)]&/span&
&span class=&k&&return&/span& &span class=&n&&returndata&/span&
&/code&&/pre&&/div&&p&这里定义了几个全局变量:&/p&&ol&&li&daylinefilespath 是下载的日k线数据&/li&&li&stock_b_code 是要显示的股票代码,大家可以换成自己想要的股票&/li&&li&MA1和MA2是移动平均线的日期间隔,例如10是10日移动平均线&/li&&li&startdate和enddate是想要显示的日期范围&/li&&/ol&&p&函数readstkData读入数据并做了必要的合并和清洗。注意这里年做了简化处理,并不完全准确。&/p&&h2&&b&绘出日K线&/b&&/h2&&p&Talk is cheap,我们直接上代码:&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&k&&def&/span& &span class=&nf&&main&/span&&span class=&p&&():&/span&
&span class=&n&&days&/span& &span class=&o&&=&/span& &span class=&n&&readstkData&/span&&span class=&p&&(&/span&&span class=&n&&daylinefilespath&/span&&span class=&p&&,&/span& &span class=&n&&stock_b_code&/span&&span class=&p&&,&/span& &span class=&n&&startdate&/span&&span class=&p&&,&/span& &span class=&n&&enddate&/span&&span class=&p&&)&/span&
&span class=&c1&&# drop the date index from the dateframe & make a copy&/span&
&span class=&n&&daysreshape&/span& &span class=&o&&=&/span& &span class=&n&&days&/span&&span class=&o&&.&/span&&span class=&n&&reset_index&/span&&span class=&p&&()&/span&
&span class=&c1&&# convert the datetime64 column in the dataframe to 'float days'&/span&
&span class=&n&&daysreshape&/span&&span class=&p&&[&/span&&span class=&s1&&'DateTime'&/span&&span class=&p&&]&/span&&span class=&o&&=&/span&&span class=&n&&mdates&/span&&span class=&o&&.&/span&&span class=&n&&date2num&/span&&span class=&p&&(&/span&&span class=&n&&daysreshape&/span&&span class=&p&&[&/span&&span class=&s1&&'DateTime'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&astype&/span&&span class=&p&&(&/span&&span class=&n&&dt&/span&&span class=&o&&.&/span&&span class=&n&&date&/span&&span class=&p&&))&/span&
&span class=&c1&&# clean day data for candle view &/span&
&span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&drop&/span&&span class=&p&&(&/span&&span class=&s1&&'Volume'&/span&&span class=&p&&,&/span& &span class=&n&&axis&/span&&span class=&o&&=&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&n&&inplace&/span& &span class=&o&&=&/span& &span class=&bp&&True&/span&&span class=&p&&)&/span&
&span class=&n&&daysreshape&/span& &span class=&o&&=&/span& &span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&reindex&/span&&span class=&p&&(&/span&&span class=&n&&columns&/span&&span class=&o&&=&/span&&span class=&p&&[&/span&&span class=&s1&&'DateTime'&/span&&span class=&p&&,&/span&&span class=&s1&&'Open'&/span&&span class=&p&&,&/span&&span class=&s1&&'High'&/span&&span class=&p&&,&/span&&span class=&s1&&'Low'&/span&&span class=&p&&,&/span&&span class=&s1&&'Close'&/span&&span class=&p&&])&/span&
&span class=&n&&Av1&/span& &span class=&o&&=&/span& &span class=&n&&movingaverage&/span&&span class=&p&&(&/span&&span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&Close&/span&&span class=&o&&.&/span&&span class=&n&&values&/span&&span class=&p&&,&/span& &span class=&n&&MA1&/span&&span class=&p&&)&/span&
&span class=&n&&Av2&/span& &span class=&o&&=&/span& &span class=&n&&movingaverage&/span&&span class=&p&&(&/span&&span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&Close&/span&&span class=&o&&.&/span&&span class=&n&&values&/span&&span class=&p&&,&/span& &span class=&n&&MA2&/span&&span class=&p&&)&/span&
&span class=&n&&SP&/span& &span class=&o&&=&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&DateTime&/span&&span class=&o&&.&/span&&span class=&n&&values&/span&&span class=&p&&[&/span&&span class=&n&&MA2&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&:])&/span&
&span class=&n&&fig&/span& &span class=&o&&=&/span& &span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&figure&/span&&span class=&p&&(&/span&&span class=&n&&facecolor&/span&&span class=&o&&=&/span&&span class=&s1&&'#07000d'&/span&&span class=&p&&,&/span&&span class=&n&&figsize&/span&&span class=&o&&=&/span&&span class=&p&&(&/span&&span class=&mi&&15&/span&&span class=&p&&,&/span&&span class=&mi&&10&/span&&span class=&p&&))&/span&
&span class=&n&&ax1&/span& &span class=&o&&=&/span& &span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&subplot2grid&/span&&span class=&p&&((&/span&&span class=&mi&&6&/span&&span class=&p&&,&/span&&span class=&mi&&4&/span&&span class=&p&&),&/span& &span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span&&span class=&mi&&0&/span&&span class=&p&&),&/span& &span class=&n&&rowspan&/span&&span class=&o&&=&/span&&span class=&mi&&4&/span&&span class=&p&&,&/span& &span class=&n&&colspan&/span&&span class=&o&&=&/span&&span class=&mi&&4&/span&&span class=&p&&,&/span& &span class=&n&&axisbg&/span&&span class=&o&&=&/span&&span class=&s1&&'#07000d'&/span&&span class=&p&&)&/span&
&span class=&n&&candlestick_ohlc&/span&&span class=&p&&(&/span&&span class=&n&&ax1&/span&&span class=&p&&,&/span& &span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&values&/span&&span class=&p&&[&/span&&span class=&o&&-&/span&&span class=&n&&SP&/span&&span class=&p&&:],&/span& &span class=&n&&width&/span&&span class=&o&&=.&/span&&span class=&mi&&6&/span&&span class=&p&&,&/span& &span class=&n&&colorup&/span&&span class=&o&&=&/span&&span class=&s1&&'#ff1717'&/span&&span class=&p&&,&/span& &span class=&n&&colordown&/span&&span class=&o&&=&/span&&span class=&s1&&'#53c156'&/span&&span class=&p&&)&/span&
&span class=&n&&Label1&/span& &span class=&o&&=&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&MA1&/span&&span class=&p&&)&/span&&span class=&o&&+&/span&&span class=&s1&&' SMA'&/span&
&span class=&n&&Label2&/span& &span class=&o&&=&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&MA2&/span&&span class=&p&&)&/span&&span class=&o&&+&/span&&span class=&s1&&' SMA'&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&plot&/span&&span class=&p&&(&/span&&span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&DateTime&/span&&span class=&o&&.&/span&&span class=&n&&values&/span&&span class=&p&&[&/span&&span class=&o&&-&/span&&span class=&n&&SP&/span&&span class=&p&&:],&/span&&span class=&n&&Av1&/span&&span class=&p&&[&/span&&span class=&o&&-&/span&&span class=&n&&SP&/span&&span class=&p&&:],&/span&&span class=&s1&&'#e1edf9'&/span&&span class=&p&&,&/span&&span class=&n&&label&/span&&span class=&o&&=&/span&&span class=&n&&Label1&/span&&span class=&p&&,&/span& &span class=&n&&linewidth&/span&&span class=&o&&=&/span&&span class=&mf&&1.5&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&plot&/span&&span class=&p&&(&/span&&span class=&n&&daysreshape&/span&&span class=&o&&.&/span&&span class=&n&&DateTime&/span&&span class=&o&&.&/span&&span class=&n&&values&/span&&span class=&p&&[&/span&&span class=&o&&-&/span&&span class=&n&&SP&/span&&span class=&p&&:],&/span&&span class=&n&&Av2&/span&&span class=&p&&[&/span&&span class=&o&&-&/span&&span class=&n&&SP&/span&&span class=&p&&:],&/span&&span class=&s1&&'#4ee6fd'&/span&&span class=&p&&,&/span&&span class=&n&&label&/span&&span class=&o&&=&/span&&span class=&n&&Label2&/span&&span class=&p&&,&/span& &span class=&n&&linewidth&/span&&span class=&o&&=&/span&&span class=&mf&&1.5&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&grid&/span&&span class=&p&&(&/span&&span class=&bp&&True&/span&&span class=&p&&,&/span& &span class=&n&&color&/span&&span class=&o&&=&/span&&span class=&s1&&'w'&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&xaxis&/span&&span class=&o&&.&/span&&span class=&n&&set_major_locator&/span&&span class=&p&&(&/span&&span class=&n&&mticker&/span&&span class=&o&&.&/span&&span class=&n&&MaxNLocator&/span&&span class=&p&&(&/span&&span class=&mi&&10&/span&&span class=&p&&))&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&xaxis&/span&&span class=&o&&.&/span&&span class=&n&&set_major_formatter&/span&&span class=&p&&(&/span&&span class=&n&&mdates&/span&&span class=&o&&.&/span&&span class=&n&&DateFormatter&/span&&span class=&p&&(&/span&&span class=&s1&&'%Y-%m-&/span&&span class=&si&&%d&/span&&span class=&s1&&'&/span&&span class=&p&&))&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&yaxis&/span&&span class=&o&&.&/span&&span class=&n&&label&/span&&span class=&o&&.&/span&&span class=&n&&set_color&/span&&span class=&p&&(&/span&&span class=&s2&&&w&&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&spines&/span&&span class=&p&&[&/span&&span class=&s1&&'bottom'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&set_color&/span&&span class=&p&&(&/span&&span class=&s2&&&#5998ff&&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&spines&/span&&span class=&p&&[&/span&&span class=&s1&&'top'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&set_color&/span&&span class=&p&&(&/span&&span class=&s2&&&#5998ff&&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&spines&/span&&span class=&p&&[&/span&&span class=&s1&&'left'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&set_color&/span&&span class=&p&&(&/span&&span class=&s2&&&#5998ff&&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&spines&/span&&span class=&p&&[&/span&&span class=&s1&&'right'&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&set_color&/span&&span class=&p&&(&/span&&span class=&s2&&&#5998ff&&/span&&span class=&p&&)&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&tick_params&/span&&span class=&p&&(&/span&&span class=&n&&axis&/span&&span class=&o&&=&/span&&span class=&s1&&'y'&/span&&span class=&p&&,&/span& &span class=&n&&colors&/span&&span class=&o&&=&/span&&span class=&s1&&'w'&/span&&span class=&p&&)&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&gca&/span&&span class=&p&&()&/span&&span class=&o&&.&/span&&span class=&n&&yaxis&/span&&span class=&o&&.&/span&&span class=&n&&set_major_locator&/span&&span class=&p&&(&/span&&span class=&n&&mticker&/span&&span class=&o&&.&/span&&span class=&n&&MaxNLocator&/span&&span class=&p&&(&/span&&span class=&n&&prune&/span&&span class=&o&&=&/span&&span class=&s1&&'upper'&/span&&span class=&p&&))&/span&
&span class=&n&&ax1&/span&&span class=&o&&.&/span&&span class=&n&&tick_params&/span&&span class=&p&&(&/span&&span class=&n&&axis&/span&&span class=&o&&=&/span&&span class=&s1&&'x'&/span&&span class=&p&&,&/span& &span class=&n&&colors&/span&&span class=&o&&=&/span&&span class=&s1&&'w'&/span&&span class=&p&&)&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&ylabel&/span&&span class=&p&&(&/span&&span class=&s1&&'Stock price and Volume'&/span&&span class=&p&&)&/span&
&span class=&n&&plt&/span&&span class=&o&&.&/span&&span class=&n&&show&/span&&span class=&p&&()&/span&
&span class=&k&&if&/span& &span class=&n&&__name__&/span& &span class=&o&&==&/span& &span class=&s2&&&__main__&&/span&&span class=&p&&:&/span&
&span class=&n&&main&/span&&span class=&p&&()&/span&
&/code&&/pre&&/div&&p&这里有几点要注意:&/p&&ol&&li&为了调用matplotlib的蜡烛图函数,我们把数据重新排布了一下,并修改了日期的格式。以满足candlestick_ohlc函数的要求。&/li&&li&创立了ax1来显示日k线,后面还会建立其他几个子图。&/li&&/ol&&p&我们来运行一下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-51b7a1dcc16fce17ffb6_b.jpg& data-rawwidth=&898& data-rawheight=&392& class=&origin_image zh-lightbox-thumb& width=&898& data-original=&https://pic3.zhimg.com/v2-51b7a1dcc16fce17ffb6_r.jpg&&&/figure&&p&效果还行,不但有K线,还叠加了MA1和MA2。下面我们来绘制其他技术参数。&/p&&h2&&b&绘制RSI&/b&&/h2&&p&下面我们在顶部加入RSI:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span& # plot an RSI indicator on top
maLeg = plt.legend(loc=9, ncol=2, prop={'size':7},
fancybox=True, borderaxespad=0.)
maLeg.get_frame().set_alpha(0.4)
textEd = pylab.gca().get_legend().get_texts()
pylab.setp(textEd[0:5], color = 'w')
ax0 = plt.subplot2grid((6,4), (0,0), sharex=ax1, rowspan=1, colspan=4, axisbg='#07000d')
rsi = rsiFunc(daysreshape.Close.values)
rsiCol = '#c1f9f7'
posCol = '#386d13'
negCol = '#8f2020'
ax0.plot(daysreshape.DateTime.values[-SP:], rsi[-SP:], rsiCol, linewidth=1.5)
ax0.axhline(70, color=negCol)
ax0.axhline(30, color=posCol)
ax0.fill_between(daysreshape.DateTime.values[-SP:], rsi[-SP:], 70, where=(rsi[-SP:]&=70), facecolor=negCol, edgecolor=negCol, alpha=0.5)
ax0.fill_between(daysreshape.DateTime.values[-SP:], rsi[-SP:], 30, where=(rsi[-SP:]&=30), facecolor=posCol, edgecolor=posCol, alpha=0.5)
ax0.set_yticks([30,70])
ax0.yaxis.label.set_color(&w&)
ax0.spines['bottom'].set_color(&#5998ff&)
ax0.spines['top'].set_color(&#5998ff&)
ax0.spines['left'].set_color(&#5998ff&)
ax0.spines['right'].set_color(&#5998ff&)
ax0.tick_params(axis='y', colors='w')
ax0.tick_params(axis='x', colors='w')
plt.ylabel('RSI')
&/code&&/pre&&/div&&p&我们在ax1的上面加上了ax0子图,用以绘制RSI曲线。程序比较简单,我们来运行一下:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c51a30afa5a5efe7c35961ebc8559367_b.jpg& data-rawwidth=&898& data-rawheight=&485& class=&origin_image zh-lightbox-thumb& width=&898& data-original=&https://pic4.zhimg.com/v2-c51a30afa5a5efe7c35961ebc8559367_r.jpg&&&/figure&&h2&&b&绘制成交量&/b&&/h2&&p&所有的股票软件都有成交量图,我们当然也不能免俗。我们不再增加子图,而是把成交量叠加在k线图下面,用浅蓝色标识,这样既清楚又节省空间:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span& volumeMin = 0
ax1v = ax1.twinx()
ax1v.fill_between(daysreshape.DateTime.values[-SP:],volumeMin, days.Volume.values[-SP:], facecolor='#00ffe8', alpha=.4)
ax1v.axes.yaxis.set_ticklabels([])
ax1v.grid(False)
###Edit this to 3, so it's a bit larger
ax1v.set_ylim(0, 3*days.Volume.values.max())
ax1v.spines['bottom'].set_color(&#5998ff&)
ax1v.spines['top'].set_color(&#5998ff&)
ax1v.spines['left'].set_color(&#5998ff&)
ax1v.spines['right'].set_color(&#5998ff&)
ax1v.tick_params(axis='x', colors='w')
ax1v.tick_params(axis='y', colors='w')
&/code&&/pre&&/div&&p&注意这里不是家里一个新的ax,而是从ax1上加入了个twinx,从而和k线共用x轴。效果如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-074d169d6f59bda703b85fe_b.jpg& data-rawwidth=&898& data-rawheight=&485& class=&origin_image zh-lightbox-thumb& width=&898& data-original=&https://pic3.zhimg.com/v2-074d169d6f59bda703b85fe_r.jpg&&&/figure&&h2&&b&绘制MACD&/b&&/h2&&p&我们再在最下面画出MACD图。经过了前面那些步骤,你一定知道只要增加个新的子图就好了。是的,程序比较简单:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span& # plot an MACD indicator on bottom
ax2 = plt.subplot2grid((6,4), (5,0), sharex=ax1, rowspan=1, colspan=4, axisbg='#07000d')
fillcolor = '#00ffe8'
nslow = 26
nfast = 12
emaslow, emafast, macd = computeMACD(daysreshape.Close.values)
ema9 = ExpMovingAverage(macd, nema)
ax2.plot(daysreshape.DateTime.values[-SP:], macd[-SP:], color='#4ee6fd', lw=2)
ax2.plot(daysreshape.DateTime.values[-SP:], ema9[-SP:], color='#e1edf9', lw=1)
ax2.fill_between(daysreshape.DateTime.values[-SP:], macd[-SP:]-ema9[-SP:], 0, alpha=0.5, facecolor=fillcolor, edgecolor=fillcolor)
plt.gca().yaxis.set_major_locator(mticker.MaxNLocator(prune='upper'))
ax2.spines['bottom'].set_color(&#5998ff&)
ax2.spines['top'].set_color(&#5998ff&)
ax2.spines['left'].set_color(&#5998ff&)
ax2.spines['right'].set_color(&#5998ff&)
ax2.tick_params(axis='x', colors='w')
ax2.tick_params(axis='y', colors='w')
plt.ylabel('MACD', color='w')
ax2.yaxis.set_major_locator(mticker.MaxNLocator(nbins=5, prune='upper'))
for label in ax2.xaxis.get_ticklabels():
label.set_rotation(45)
&/code&&/pre&&/div&&p&运行效果如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-222cf3f20f36b8124122_b.jpg& data-rawwidth=&906& data-rawheight=&616& class=&origin_image zh-lightbox-thumb& width=&906& data-original=&https://pic3.zhimg.com/v2-222cf3f20f36b8124122_r.jpg&&&/figure&&h2&&b&收尾&/b&&/h2&&p&不知你注意到没有,上图有几个问题:&/p&&ol&&li&x轴日期出现了三次&/li&&li&没有title&/li&&/ol&&p&下面我们做一些美化工作,并演示如何加入一个提示点,将来你可以用它来展示自己量化操作的节点:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span& plt.suptitle(stock_b_code,color='w')
plt.setp(ax0.get_xticklabels(), visible=False)
plt.setp(ax1.get_xticklabels(), visible=False)
# Mark big event
# TODO: Make a real case here
ax1.annotate('BreakNews!',(daysreshape.DateTime.values[155],Av1[155]),
xytext=(0.8, 0.9), textcoords='axes fraction',
arrowprops=dict(facecolor='white', shrink=0.05),
fontsize=10, color = 'w',
horizontalalignment='right', verticalalignment='bottom')
plt.subplots_adjust(left=.09, bottom=.14, right=.94, top=.95, wspace=.20, hspace=0)
plt.show()
&/code&&/pre&&/div&&p&好了,大功告成:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-451a6af74df99e662aea49782ebd0567_b.jpg& data-rawwidth=&987& data-rawheight=&674& class=&origin_image zh-lightbox-thumb& width=&987& data-original=&https://pic4.zhimg.com/v2-451a6af74df99e662aea49782ebd0567_r.jpg&&&/figure&&h2&&b&结语&/b&&/h2&&p&大家可能注意到了,有很多代码在配色。是的,如果我们把所有的colorxxx都删掉,也可以显示出大致的曲线,但是却非常难看。这也是为什么要改变缺省matplotlib配色的原因。&/p&&p&大家可以实验一下更新前面的几个全局变量,比如换一换股票、MA或者开始结束日期什么的,这里给大家一个思考题:&/p&&p&在readstkData()切片时为什么只切了结束时间没有切开始时间?SP变量是干什么用的?&/p&&p&&br&&/p&&p&欢迎关注本专栏!&/p&
漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果。本文介绍如何使用matplotlib做出专业的K线图和展示各种技术指标:matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB…
&figure&&img src=&https://pic2.zhimg.com/v2-8a3091c8fda_b.jpg& data-rawwidth=&750& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic2.zhimg.com/v2-8a3091c8fda_r.jpg&&&/figure&&p&原文链接:&a href=&https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMjM5MDEyMDk4Mw%3D%3D%26mid%3D%26idx%3D1%26sn%3D680ceec11df327e31cd6db9%26chksm%3Dbe4beca5a2b3c505d4e6b254ffee21cb5e%26mpshare%3D1%26scene%3D23%26srcid%3DEJa9cEWQmb0EIas%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&听说你好不容易写了个爬虫,结果没抓几个就被封了?&/a&&/p&&p&作者:crossin&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-aa8822efe6d513ed3d9e646a35f44828_b.jpg& data-rawwidth=&640& data-rawheight=&357& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-aa8822efe6d513ed3d9e646a35f44828_r.jpg&&&/figure&&p&近来知乎上如雨后春笋般冒出了大把大把的爬虫教程。这是好事,学了 Python 基础的同学们可以很轻松地搜出许多练手的例子。不过我不是针对谁,我是说网上绝大多数的爬虫教程,其实都缺乏可操作性。&/p&&p&是的,也包括我自己写过的。&/p&&p&主要原因有两点:&/p&&ol&&li&教程是死的,网站是活的。页面会改版,接口会更新。一个爬虫教程的案例三个月之后还能有效已经是万幸了。比如我自己教程里的查天气案例,接口改动过很多次,数据也早就不更新。但发出去的文章被转发几次后就很难再维护更新了。我也只能在自己的论坛上发布更新消息和问题答疑。有需要的同学请在论坛 &a href=&https://link.zhihu.com/?target=http%3A//bbs.crossincode.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&bbs.crossincode.com&/span&&span class=&invisible&&&/span&&/a& 上搜索 &b&查天气&/b&,进入帖子查看。&/li&&li&但凡数据比较有价值的网站,一定都会有反爬措施,既是对数据的保护,也是避免机器流量干扰到正常用户的体验。所以光是写个网络请求,几乎不可能成功拿到数据。反爬措施千千万,应对反爬的手段万万千,这就是个不停斗智斗勇的过程,不存在一个教程就教会的万金油方法。&/li&&/ol&&p&&br&&/p&&p&反爬里面最常见的一种手段就是,判断你的请求频率。如果你短时间内发送了大量的请求,甭管你是不是人,先封你账号或 IP 一段时间再说。所以,这就成了一个矛盾的地方:爬得太快会被封,爬得太慢又很耗时间。一般教程也许会说句:想要提升抓取效率并且降低被封的风险,可以使用代理 IP。然而这话说着倒轻松,网上免费的代理 IP 也不少,但每次找来能用的却没几个。总不至于每次为了写点小练习还去花钱买很多付费代理吧。况且现如今你真要买,也还未必能顺利买到可用的。&br&&/p&&p&于是我们决定自己动手,一劳永逸地解决这个老大难问题:&b&实现一个自动获取可用代理 IP 的接口&/b&。&/p&&p&基本思路还是从网上的几大免费平台获取 IP 地址,不同的是我们定期去检测 IP 的可用性。在调用接口时,提供可用性最高的 IP 地址列表。&/p&&p&网页上列出了几十个最新的推荐 IP,只是临时找几个做测试,可直接访问查看。&/p&&p&网页地址:&a href=&https://link.zhihu.com/?target=http%3A//lab.crossincode.com/proxy/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&lab.crossincode.com/pro&/span&&span class=&invisible&&xy/&/span&&span class=&ellipsis&&&/span&&/a& &/p&&p&API 接口地址:&a href=&https://link.zhihu.com/?target=http%3A//lab.crossincode.com/proxy/get/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&lab.crossincode.com/pro&/span&&span class=&invisible&&xy/get/&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&请求方法:GET&/p&&p&频率限制:不高于3秒1次&/p&&p&请求示例:&/p&&p&获取 5 个 IP &a href=&https://link.zhihu.com/?target=http%3A//lab.crossincode.com/proxy/get/%3Fnum%3D5& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&lab.crossincode.com/pro&/span&&span class=&invisible&&xy/get/?num=5&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&获取 5 个 HTTPS 的 IP &a href=&https://link.zhihu.com/?target=http%3A//lab.crossincode.com/proxy/get/%3Fnum%3D5%26head%3Dhttps& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&lab.crossincode.com/pro&/span&&span class=&invisible&&xy/get/?num=5&head=https&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&返回结果示例:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{
&proxies&: [
&http&: &117.90.0.225:9000&
&http&: &186.154.146.26:8080&
&http&: &175.155.25.27:808&
&http&: &124.88.67.52:843&
&http&: &119.5.0.7:808&
&/code&&/pre&&/div&&p&于是,在你做爬虫练习时,只要通过接口获取几个 IP,作为你请求的 proxy,即可大大提高抓取的效率。目前我们自己的爬虫项目都在使用此接口。&/p&&p&不过仍然要说明,即使经过多次验证,也无法保证一个 IP 的绝对可用性。不同时间不同地域不同网络都有可能导致请求超时或失效。所以你的代码中也还是需要自己做好相应的异常处理。这是个概率问题,工具的作用只是尽可能提高概率。&/p&&p&我们不生产 IP,我们只是互联网的搬运工。&/p&&p&完整的接口参数说明,以及项目的源代码,可在公众号(Crossin的编程教室)后台回复&b& IP &/b&获取。&/p&&p&&a href=&https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMjM5MDEyMDk4Mw%3D%3D%26mid%3D%26idx%3D1%26sn%3D680ceec11df327e31cd6db9%26chksm%3Dbe4beca5a2b3c505d4e6b254ffee21cb5e%26mpshare%3D1%26scene%3D23%26srcid%3DEJa9cEWQmb0EIas%23rd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阅读原文&/a&&/p&
原文链接:作者:crossin 近来知乎上如雨后春笋般冒出了大把大把的爬虫教程。这是好事,学了 Python 基础的同学们可以很轻松地搜出许多练手的例子。不过我不是针对谁,我是说网上绝大多数的爬虫教程,其实…
感谢大家的厚爱!感谢一直以来默默的支持!没有您们的支持,车小胖的文章依然会静静地躺在那里而无人问津。如果给车小胖打些标签,可以打上这三个标签:&b&网络技术狂热爱好者&/b&、&b&崇尚自由完美主义者&/b&、&b&良心尚未泯灭理想与正义追求者&/b&。&br&&br&一直坚信人的潜力是无穷大,只是没有充分挖掘出来。为什么热爱网络技术?我喜欢网络排错!网络排错和抓坏人很相似。我喜欢看侦探故事,小学的时候就看过《刑警队长》,队长收集证据,不放过丝毫的蛛丝马迹,然后不断推理,发现一条路是死胡同,再换另一条路,只要没有前后矛盾、逻辑通顺,基本就可以锁定嫌疑人。看的我热血沸腾,每当看到坏蛋被揪出来,长长地舒了一口气,正义最终还是战胜了邪恶!现在经常看CCTV-10《天网》以及上海卫视《东方110》这两档节目,我会随着摄像头加入寻找坏人的队伍中,剖析人性阴暗,如果事先给出三个嫌疑人,最终我没有找出真正的嫌疑人,那说明我被表象所迷惑,没有透过现象看到本质。&br&&br&记得有一集是一女子在出租屋遇害,房间并被纵火,破坏了现场。给出三个嫌疑人,她老公,做厨师的姘头,独身的男房东。老公疑点很多,因为经常因为老婆红杏出墙而吵架;厨师可疑是因为经常有电话频繁联系。房东可疑是因为是他报的案,并且言语闪烁,疑点重重,而且有作案时间。男房东住在楼上,他在描述事情的经过的时候,说发现自己房间有很多烟,事发时是寒冷的冬天,刑警查阅了当天气象资料,说有两到三级北风,底楼的烟怎会飘到二楼紧闭门窗的房间里?我一直认为房东是真正的嫌疑人,后来细心的刑警观察现场,发现一个疑点,房东的二楼地板上有一个人为制造的小孔,于是审问了房东,房东因为有难言之隐,所以一直在撒谎,后来他说出了实情:单身房东,有一个特殊的嗜好,偷窥癖,房子只租给单身女性,然后可以在二楼通过地板上的小孔偷窥,以此达到心理、生理上的愉悦…事发当天,看到楼下的女租客带着一个胖胖的男人,然后又看到精彩的床戏,由于床戏很长,房东竟然满足地睡着了。后来被激烈的争吵弄醒了,发现自己的房间弥漫着很多烟雾,顺着小孔飘上来的,房东意识到出事了,于是选择报警。为了掩盖自己不甚光彩的偷窥历史,所以显得破绽百出,后来刑警根据形貌特征锁定了厨师,厨师因为女子要他娶她,感觉湿手沾面粉甩不掉而痛下杀手…&br&&br&记得90年代互联网因为故障而中断了8小时,这是读《Internet Routing》这本书了解到的,我在想故障的root cause就在那里静静地等待着我们去发现它,如果深刻而透彻理解,则可以快速把它快速地揪出来。诚然,现在计算机系统越来越复杂,计算机天才如比尔.盖茨也不能完全懂Windows里的每一个实现,但是多懂一些,就多了一些胜算的概率。&br&&br&从自学网络开始,要求自己透彻理解任何一个基础协议,如果不能理解很透彻,先放在一边,继续学习,只要不要停止学习的步伐,有一天再回来复习,会发现茅塞顿开,彻彻底底明白了。&br&&br&相信&b&持之以恒的毅力可以创造很多奇迹!&/b&对依靠投机取巧,喧嚣浮躁向来嗤之以鼻。宣扬学这个没用,学那个也白搭,这是一种很&b&颓废的逆势暗流!&/b&相信我,如果你持之以恒地努力做一件事,要不了多久,三个月即可见到你刻苦努力的回报。&br&&br&车小胖以前英语不好,大学第一次四级考试考了52分,我怒了,和它干上了,花了三个月的时间疯狂学英语,确实很疯狂,说梦话都是英文,为何我知道?同宿舍同学告诉我的。第二次考了82分,虽然没达到优秀85分,但已是那批考试里的最高分。&br&&br&06年以满分的成绩考了 &Routing & Switching& CCIE,可是并没有等待pass 的邮件通知,而是一个满分却fail的邮件通知,我当时还是很难过的!围着故宫的外墙走了一圈,既然已经获得了成绩,没有证书又何妨?07年的3月初收到了cisco公司迟到的邮件,告诉我 Pass 并给了我一个CCIE号,高兴了三天!&br&&br&如果有童鞋问我,有什么好的方法可以推荐?先看书,看的时候觉得写得特别好,一般看完会忘记大多数,这是规律,人类记忆的规律,那怎样可以记住呢?要再看,遇到可以动手的,一定要动手,&b&动手一次胜过看书十遍!&/b&比如学习DHCP,可以打开wireshark用混杂模式capture 网口的流量,然后在电脑上DOS CMD 下输入 IPconfig /release,然后再输入ipconfig /renew ,停止wireshark 的capture,看看捕获的DHCP 报文在 client 与 server之间的交互,discovery , offer,request,ack,在研究一下端口号 UDP 67/68,再研究里面的字段:&br&client hardware address &br&your IP address&br&client IP address&br&gateway IP address&br&server IP address&br&option 1,2,6,60,82…&br&&br&相信你做过这个实验,你对DHCP理解将非常深刻。&br&&br&至于网络论坛,我推荐cisco support community,这里可能是业界最高水准的论坛,里面大牛云集,最重要的是,大牛们不浮躁,一切源于自身的兴趣,会认认真真答题,你会不经意之间提高很多…&br&&br&至于书,我已经写了很多次,这里作为一个集中推荐,以下书目都是我爱不释手的书籍:&br&&br&Routing:&br&Jeff Doyle
# CCIE 1919 &br&&b&《TCP/IP Routing》 Volume 1,2&/b&&br&&br&BGP&br&Cisco Press&br&&b&《Internet Routing》&br&&/b&&br&Switching:&br&Cisco Press &br&&b&《LAN Switching》&br&&/b&&br&TCP/IP&br&Stevens&br&&b&《TCP/IP Illustration》Volume 1&/b&&br&&br&MPLS&br&Cisco Press&br&&b&《MPLS Fundamental》&/b&&br&&br&Security&br&Cisco Press&br&&b&《Designing Network Security》&/b&&br&&figure&&img data-rawwidth=&1280& data-rawheight=&1280& src=&https://pic4.zhimg.com/d1e546bacb5ca183cf4d7b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/d1e546bacb5ca183cf4d7b_r.jpg&&&/figure&&br&&br&先写到这里,如果童鞋们有什么问题,可以评论区留言,我会一并回复,再次感谢大家。
感谢大家的厚爱!感谢一直以来默默的支持!没有您们的支持,车小胖的文章依然会静静地躺在那里而无人问津。如果给车小胖打些标签,可以打上这三个标签:网络技术狂热爱好者、崇尚自由完美主义者、良心尚未泯灭理想与正义追求者。 一直坚信人的潜力是无穷大…
&figure&&img src=&https://pic1.zhimg.com/v2-c17d5c8328594dce492c527b669f8042_b.jpg& data-rawwidth=&1024& data-rawheight=&702& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&https://pic1.zhimg.com/v2-c17d5c8328594dce492c527b669f8042_r.jpg&&&/figure&&h1&新年到了,作为新年礼物。我想推荐一张书单给你。&/h1&&p&2017年,相信有很多朋友都有新年的计划,想要在今年更进一层楼。&/p&&p&题图是航海的图片,想送给打算更上一层楼的朋友一句大家非常熟悉的古诗:&/p&&p&长风破浪会有时,直挂云帆济沧海&br&&/p&&p&在这里,我准备了一份不错的礼物送给各位(文末附彩蛋),当然我们的礼物包括但不限于此。&/p&&p&我们在即将新年的时候爬了京东某些书籍的评论量(我们只选取了京东自营的书籍,这极大避免了出现刷单这种情况的发生。)&/p&&p&用评论数来作为书籍的销售饼图(销售量不可计算,用评论数来做占比)&/p&&p&(PS:由于京东不提供具体评论数,我们只能用评论数的1-100之间的浮动取0来计算)&/p&&p&并且统计了该类书籍的好评排名。&/p&&p& 爬虫的作者&a href=&https://www.zhihu.com/people/25c5a50c8925a3ceaaf4ff& data-hash=&25c5a50c8925a3ceaaf4ff& class=&member_mention& data-title=&@奶权& data-hovercard=&p$b$25c5a50c8925a3ceaaf4ff& data-editable=&true&&@奶权&/a&&br&&/p&&p&爬虫的Github地址:&a href=&https://link.zhihu.com/?target=https%3A//github.com/naiquann/JD_crawler& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&naiquann/JD_crawler&/a&&/p&&p&很多粉丝都是&b&信安&/b&方面的&br&&/p&&p&我们先来看看信安方面的书籍有哪些。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d1759194eae873f4eb8cf3e4e670ae36_b.jpg& data-rawwidth=&3526& data-rawheight=&1822& class=&origin_image zh-lightbox-thumb& width=&3526& data-original=&https://pic4.zhimg.com/v2-d1759194eae873f4eb8cf3e4e670ae36_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-c33df427bdc2d365cb2cfaf_b.jpg& data-rawwidth=&3526& data-rawheight=&1732& class=&origin_image zh-lightbox-thumb& width=&3526& data-original=&https://pic1.zhimg.com/v2-c33df427bdc2d365cb2cfaf_r.jpg&&&/figure&&p&信安方面销售量占多位数的应该是:《华为ICT认证系列丛书:华为防火墙技术漫谈》其对应的评论数在之间&/p&&p&好评率为97% 该书出版时间为2015年5月&/p&&p&好评数占高位的是:《网络安全监控实战:深入理解事件检测与响应》其对应的评论数在100-109之间。好评率为:99%&/p&&p&该书出版时间为:2015年4月&/p&&p&可能该书的原版是英文,国人对该书不大习惯。故此销售量偏冷。&/p&&p&在销售量前六名的书籍中,没有一本是2016年出版的。&/p&&p&故此推荐《华为ICT认证系列丛书:华为防火墙技术漫谈》&/p&&br&&p&接下来这个是&b&网络通讯&/b&方面&/p&&figure&&img src=&https://pic4.zhimg.com/v2-26e2f22b5d9e76b4e7889_b.jpg& data-rawwidth=&3526& data-rawheight=&1822& class=&origin_image zh-lightbox-thumb& width=&3526& data-original=&https://pic4.zhimg.com/v2-26e2f22b5d9e76b4e7889_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-0b88d3cf9f_b

我要回帖

更多关于 风暴要塞副本入口在哪 的文章

 

随机推荐