ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

win7远程执行win10的抓取代码

2022-01-04 22:34:29  阅读:178  来源: 互联网

标签:147 程序 ip winrm win7 抓取 241 win10


win7远程执行win10的抓取代码

一、需求引入

  话说,在公司内网win7虚拟机上部署了一套抓取程序,因为一些原因,需要把公司内网0网段ip段分成两部分:一段走wan1(光猫1),一段走wan2(光猫2),意味着两段ip走的出口是不同的。刚好这台win7虚拟机241走的是wan2出口。

  现在遇到一个问题,有时候抓取程序会报错,就是打不开抓取的网址,开发怀疑是出口ip不好使(类似抓取被禁诸如此类),于是领导想我判断当抓取失败的时候,在另一台机器也就是下面的147,从另一个出口ip重跑一次抓取程序。

 

二、解决

  思路:

(1)路由器限制另一台机器(147)的出口ip,跟抓取程序的原机器(241)出口ip不同;

(2)147部署跟241相同的抓取程序;

(3)当跑241抓取程序页面抓取报错时(py抓取程序的try..except的except里面),利用winrm远程调用147的抓取程序

  对于思路(1),首先交代一下,0网段没有存储空间让我多建一台windows机器了,0网段其他windows机器的定时任务也放的满满的,所以只能从2网段空闲的win10入手了。幸好192.168.0.1的路由器也能对2网段(192.168.2.0/24)的ip进行出口限制,如下图:

(a)分地址池:

(b)配路由策略:

 

   对于思路(2),WinRM可以说是windows的远程管理服务,类似于linux的ssh命令,能远程到计算机上执行相关命令。如何配置使用,可以参考这个文章:https://www.cnblogs.com/yy-cola/p/9637437.html

  刚好两边的windows机器都装有python环境,特意说下被控端,也就是win10,网络配置连接要从“公用”改到“专用”,不然winrm配置的时候会报错

   除了文章上面的命令,我还加了白名单:

C:\Windows\system32>winrm set winrm/config/client @{TrustedHosts="192.168.0.241,192.168.2.147"}    

   最后来个连接测试的脚本

import winrm

win = winrm.Session('http://被控端ip:5985/wsman',auth=('username','userpassword')

#调用系统计算机
#r = win.run_cmd('calc')

#执行python脚本
r = win.run_cmd('python E:\\test\\index.py')

if r.status_code == 0:   #调用成功
    print("调用成功")
else:
    print("调用不成功!")

   还有一个问题,当241抓取程序跑不成功的时候,调用147的python抓取程序重新跑一次,不知道为啥没有打开147的chrome浏览器去跑(其实有没有真正跑成功还真是个谜,但147的代码里我加了一些输出标记倒是都有的),而脚本在241上跑是模拟打开整个浏览器网址访问的,远程调用没了这个窗口,比较奇怪。。。

  

标签:147,程序,ip,winrm,win7,抓取,241,win10
来源: https://www.cnblogs.com/windysai/p/15764444.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有