Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制

这篇具有很好参考价值的文章主要介绍了Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前出于一些原因想远程控制一台电脑办公,使用cpolar内网穿透获得公网ip,然后使用邮件传输。但cpolar免费用户公网ip是变化的,所以就想使用web自动化获取一下。

Cpolar

在win10专业版系统中,自带有微软远程桌面可以使用,但在没有进行配置的情况下,只能在局域网中使用。因此,我们可以通过cpolar内网穿透来映射远程桌面3389端口,使用所生成的公网TCP端口地址,实现在外随时随地远程桌面控制家里/公司的电脑。

cpolar官网:https://www.cpolar.com/

  • 注册与安装

cpolar免费注册用户可以提供1个在线cpolar进程,4个隧道/cpoloar进程,40个连接数/分钟。官网注册后直接安装,进行登录。

  • 创建与启动远程桌面隧道

cpolar安装成功后会默认安装两个样例隧道,没有的话可以在仪表盘界面的隧道管理创建一个远程桌面隧道。

Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制
在浏览器上访问127.0.0.1:9200,邮箱密码登录cpolar webui管理界面,点击启动来开启隧道。

  • 获取远程桌面公网ip

隧道启动成功后,点击左侧仪表盘状态中的在线隧道列表,可以看到远程桌面隧道已经有生成了相应的公网地址。
Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制
如果想省事可以在cpolar购买一个会员,公网链接tcp是固定的,但免费账号每天tcp都会变化,所以需要每天更新一遍。

我这边因为不想花钱所以就想用web自动化来获取。

Web自动化Selenium

Spider.py文件使用python的web自动化库selenium,获取网页数据。

from selenium import webdriver
from lxml import etree
import time
from selenium.common import exceptions
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webelement import WebElement

class Spider:

    def log(self, content):
        now_time = time.strftime(
            "%Y-%m-%d %H:%M:%S", time.localtime()
        )
        print(f'{now_time}: {content}')

    def getip(self, url):
        driver = webdriver.Chrome()
        # url = 'http://localhost:9200/#/status/online/'

        driver.get(url)
        html = etree.HTML(driver.page_source)
        print(html)
        content = WebElement

        '''
            这里由于每次打开网页需要登录,所以设置一个登录过程。
            网站默认会在密码栏输入123456,所以我就把密码设置成了123456,就省了输入的功夫了
            如果不想用默认密码,就用clear删掉,然后输入密码
        '''
        try:
            # 你的邮箱
            driver.find_element(By.XPATH, '//*[@placeholder="Email"]').send_keys('123456@126.com')
            # driver.find_element_by_xpath('//*[@placeholder="Password"]').clear()
            # 你的密码
            # driver.find_element_by_xpath('//*[@placeholder="Password"]').send_keys('123456')
            driver.find_element(By.XPATH, '//*[@type="button"]').click()

            time.sleep(3)

            # 这里获取公网ip的位置
            content = driver.find_element(By.XPATH, '/html/body/div/div/div[2]/section/div/div/div[3]/table/tbody/tr[2]/td[3]/div')
            # print(content.text)
            self.log("公网ip为"+content.text)
        except BaseException as e1:
            print(e1)
            self.log("无法获取ip,BaseException错误")
        except exceptions as e2:
            print(e2)
            self.log("无法获取ip,SELENIUM错误")

        return content.text

除了需要修改自己的账号密码外,需要自己在cpolar仪表盘按F12找一下公网ip对应的网格。
Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制
然后右键一下右边网格对应的位置,选择full xpath替换掉就可以了。
Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制

邮件自动化

获取到公网ip后就可以使用邮件协议,通过python给邮箱发邮件了。
这里我用的是SMTP协议,可以在自己要用的邮箱设置中找一下。
具体的操作可以看一下教程:https://www.runoob.com/python/python-email.html

SMTP.py文件需要设置自己的邮箱和协议密码。

import time
import yagmail


class Mail:
    """
    邮件相关类
    """

    def log(self, content):
        now_time = time.strftime(
            "%Y-%m-%d %H:%M:%S", time.localtime()
        )
        print(f'{now_time}: {content}')

    def sendmail(self, msg, title, receivers):
        """
        发送邮件

        Arguments:
            msg {str} -- 邮件正文
            title {str} -- 邮件标题
            receivers {list} -- 邮件接收者,数组
        """
        now_time = time.strftime(
            "%Y-%m-%d %H:%M:%S", time.localtime()
        )

        # 邮件设置,输入你的邮箱和协议密码,我这里用的126邮箱
        yag = yagmail.SMTP(
            host='smtp.126.com', user='123456@126.com',
            password='password', smtp_ssl=True
        )

        try:
            yag.send(receivers, title, msg+"\n"+(f'{now_time}'))
            self.log("邮件发送成功")

        except BaseException as e:
            print(e)
            self.log("Error: 无法发送邮件")
            

然后就可以使用邮件发送公网ip了。注意需要导入前面两个py文件。

import datetime
import time
import requests
from SMTP import Mail
from Spider import Spider


while True:
    response = requests.get('http://localhost:9200/#/status/online')

    url = 'http://localhost:9200/#/status/online/'
    # 获取公网ip
    OpenIP = Spider().getip(url)

    # 每天5,12点发送
    # if time.strftime("%H", time.localtime()) == ("5" or '10' or "23"):
    if datetime.datetime.now().hour == 5 or datetime.datetime.now().hour == 12 or datetime.datetime.now().hour == 20:
        Mail().sendmail(
            OpenIP, '公网ip', ['123456@126.com', '654321@126.com']
        )

    # 根据状态码判断网站是否正常
    if response.status_code != 200:
        Mail().sendmail(
            OpenIP+"\n"+"Cpolar崩溃了", 'Cpolar崩溃', ['123456@126.com']
        )

    # time.sleep(600)  # 等待10分钟
    time.sleep(3300)  # 等待55分钟

最后在邮件中得到的公网ip就可以实现远程桌面了。
Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制
点击连接,输入被控端电脑的账号及密码,就可远程桌面登录了。

Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制
最后为了数据安全,可以在用户中新建一个远程桌面用户组,给予部分权限。

ps:是真的折腾文章来源地址https://www.toymoban.com/news/detail-471957.html

到了这里,关于Python实现SMTP+Cpolar+Selenium 折腾方式内网穿透Windows远程控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nas群晖中安装Cpolar实现内网穿透

    cpolar官网: cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站 选择好套间无脑下一步 已完成

    2024年01月17日
    浏览(51)
  • 使用 Cpolar 内网穿透实现 Windows 远程 WebDAV 访问

    转载自内网穿透工具的文章:使用Nodejs搭建HTTP服务,并实现公网远程访问「内网穿透」 自己用Windows Server搭建了家用NAS主机,WebDAV的文件共享方式当然也是必不可少的。 本文使用的是WIN10 专业版。 1.1 打开控制面板,查看方式改为“类别”,进入“程序”,“启用或关闭Wi

    2024年02月14日
    浏览(48)
  • 在Linux中部署MeterSphere并且结合内网穿透实现远程访问本地管理页面——“cpolar内网穿透”

    MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付,推动中国测试行业整体效率的提升。 下面介

    2024年02月05日
    浏览(52)
  • 如何通过cpolar内网穿透+VNC实现公网远程ubuntu

    前言 实现ubuntu 系统桌面级别的远程连接,需要在ubuntu 系统中安装vnc,既然是桌面,前提是需要ubuntu 带有图形化界面,如果没有,可以执行以下命令安装图形化界面 1. ubuntu安装VNC 在ubuntu中安装vnc 安装LightDM【LightDM从设计上就是支持本地图形界面以获得最好的兼容性】 安装过程中会

    2024年02月09日
    浏览(53)
  • 本地Tomcat网页搭建结合Cpolar内网穿透实现公网访问

    最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 Tomcat作为一个轻量级的服务器,不仅名字很有趣(让人想起童年),也拥有强大功能,由

    2024年02月07日
    浏览(49)
  • 本地websocket服务端结合cpolar内网穿透实现公网访问

    1. Java 服务端demo环境 jdk1.8 框架:springboot+maven 工具IDEA 2. 在pom文件引入第三包封装的netty框架maven坐标 注意:pom文件里需注释掉springbootweb启动器,web启动器默认是tomcat服务启动,会和netty服务冲突 3. 创建服务端,以接口模式调用,方便外部调用 4. 启动服务,出现以下信息表示启动成功

    2024年02月04日
    浏览(48)
  • 如何实现公网远程桌面访问Ubuntu?VNC+cpolar内网穿透!

    实现ubuntu 系统桌面级别的远程连接,需要在ubuntu 系统中安装vnc,既然是桌面,前提是需要ubuntu 带有图形化界面,如果没有,可以执行以下命令安装图形化界面: 在ubuntu中安装vnc 安装LightDM【LightDM从设计上就是支持本地图形界面以获得最好的兼容性】 安装过程中会出现以下

    2024年02月08日
    浏览(53)
  • 「Cpolar」使用Typecho搭建个人博客网站【内网穿透实现公网访问】

    💂 作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较

    2024年02月02日
    浏览(87)
  • 如何使用平板连接服务器实现cpolar开发?【内网穿透实例】

    在入手iPad Pro后,为了防止“买前生产力,买后爱奇艺”,我们可以在Linux服务器上搭建code server,然后在iPad Pro上通过浏览器或者APP,来远程linux服务器,使用服务器的资源来编译代码,而iPad Pro前端只需要负责写代码编程就可以啦。 以及在实现局域网下的远程访问后,我们还

    2023年04月09日
    浏览(44)
  • MariaDB数据库本地部署结合cpolar内网穿透实现远程连接

    本篇教程将使用cpolar内网穿透本地MariaDB数据库,并实现在外公网环境下使用navicat图形化工具远程连接本地内网的MariaDB数据库。 1. 配置MariaDB数据库 1.1 安装MariaDB数据库 进入MariaDB数据库官网https://mariadb.com/downloads/community/,然后下载相应的windows版本 下载好后点击安装,出现设置

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包