当前位置: 首页 > wzjs >正文

百度收录网站定位地址wordpress换语言

百度收录网站定位地址,wordpress换语言,国内 织梦和wordpress,杭州商城网站开发解决方案 静态ip(放弃) 申请一个静态ip价格较贵,只有公司可以申请 使用DDNS(放弃) 通过域名解析到公网ip通过域名访问设备官方光猫不支持DDNS 使用脚本(采用) 通过脚本获取公网ip通过脚本发送到…

解决方案

  • 静态ip(放弃)
    • 申请一个静态ip
    • 价格较贵,只有公司可以申请
  • 使用DDNS(放弃)
    • 通过域名解析到公网ip
    • 通过域名访问设备
    • 官方光猫不支持DDNS
  • 使用脚本(采用)
    • 通过脚本获取公网ip
    • 通过脚本发送到邮箱
    • 通过脚本配置DDNS

我的方案

在服务器上部署一个脚本,每隔一段时间登陆本地网关控制网站爬取公网ip信息,如果发生变化,就通过邮箱发送给我。
我设想的进一步是发生变化就自动配置DDNS,但是由于我暂未使用域名,所以暂时没完成这个功能。
我的网关是TP-Link电信的,可能对于不同平台的网关设备的管理界面,需要特定的爬取方法,请更具自己的设备做个性化调整。

动态ip解决脚本

一个从网关管理界面拉取信息的工具

  • 爬取ip信息
    • 每隔1小时爬取一次
  • 发送到对应设备
    • 使用邮箱发送通知
  • DDNS配置(未完成)
    • 使用阿里云的DDNS服务
    • 通过脚本配置DDNS
    • 通过脚本修改域名解析

遇到的问题

我在windows上很快完成了这个脚本,但是在linux上却遇到了很多问题
首先是selenium的chrome驱动问题,它无法自动下载
于是我手动下载了对应的驱动,写明了路径,解决此问题

systemctl服务配置问题,原先ai说需要使用虚拟屏幕环境,但是实际不需要。只需要把selenium的配置添加–headless参数即可

源码

import sys # 导入sys模块以获取命令行参数import requests # 导入requests库用于发送HTTP请求
from bs4 import BeautifulSoupfrom selenium import webdriver # 导入selenium库用于自动化浏览器操作
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Optionsimport timeimport traceback  # 导入traceback模块以获取完整的错误信息import smtplib # 导入smtplib库用于发送电子邮件
from email.mime.text import MIMEText
from email.utils import formataddrROUTER_IP = "your_router_ip"  # 替换为路由器IP地址
USERNAME = "your_username"  # 替换为路由器登录用户名
PASSWORD = "your_password"  # 替换为路由器登录密码
WANIP = "0.0.0.0"  # 初始WAN IP地址CHECK_GAP = 60 * 60  # 检查间隔时间(秒),1小时SENDER_EMAIL = "your_email@example.com"  # 替换为发送通知的邮箱
QQ_EMAIL_PASSWORD = "your_email_password"  # 替换为邮箱的授权码或密码
TARGET_EMAIL = "target_email@example.com"  # 替换为目标邮箱ChromeDriverPath = "/path/to/chromedriver"  # 替换为ChromeDriver的路径def selenium_login():# 配置Chrome选项(可选)chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('--headless')  # 无头模式必须chrome_options.add_argument("--no-sandbox")  # Linux 必加chrome_options.add_argument('--disable-dev-shm-usage')chrome_options.add_argument("--disable-blink-features=AutomationControlled")service = webdriver.ChromeService(executable_path=ChromeDriverPath)  # 修改为你的路径driver = webdriver.Chrome(service=service, options=chrome_options)#driver = webdriver.Chrome(options=chrome_options)try:driver.get(f"http://{ROUTER_IP}/cgi-bin/luci")# 关键修复:等待元素可交互(最多等10秒)wait = WebDriverWait(driver, 3)# 方法1:直接移除disabled属性(更可靠)driver.execute_script("""document.getElementById("login_username").removeAttribute("disabled");document.getElementById("login_password").removeAttribute("disabled");""")# 方法2:传统等待方式username_field = wait.until(EC.element_to_be_clickable((By.ID, "login_username")))password_field = wait.until(EC.element_to_be_clickable((By.ID, "login_password")))# 输入凭据username_field.clear()username_field.send_keys(USERNAME)password_field.send_keys(PASSWORD)# 提交登录submit_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']")))submit_button.click()# 验证登录time.sleep(3)if "/cgi-bin/luci/" in driver.current_url:print("✅ 登录成功")return driver;else:print("❌ 登录失败,当前URL:", driver.current_url)driver.save_screenshot("login_fail.png")except Exception as e:print("\n❌ 完整错误信息:")print(traceback.format_exc())  # 关键修改:打印完整错误
def get_ip_from_html(driver):try:driver.get(f"http://{ROUTER_IP}/cgi-bin/luci/admin/settings/info")time.sleep(1.5)  # 等待页面加载完成html = driver.page_sourcesoup = BeautifulSoup(html, "html.parser")# 解析IP地址ip_element = soup.find("span", id="WANIP")if ip_element:wan_ip = ip_element.text.strip()return wan_ipelse:print("❌ 无法找到WAN IP元素")return Noneexcept Exception as e:print("\n❌ 完整错误信息:")raise
def send_notification_by_email(ip, sender_email, password, target_email):try:content = f"新的WAN IP地址是 {ip}"msg = MIMEText(content, "plain", "utf-8")msg["Subject"] = "WAN IP地址变化通知"msg["From"] = formataddr(("IP监控系统", sender_email))msg["To"] = formataddr(("管理员", target_email)) with smtplib.SMTP_SSL("smtp.qq.com", 465) as server:server.login(sender_email, password)server.sendmail(sender_email, [target_email], msg.as_string())print("✅ 邮件发送成功(即使可能报错,但邮件已送达)")except smtplib.SMTPResponseException as e:# 忽略SMTP关闭时的异常(如果邮件已发送成功)print(f"⚠️ SMTP服务器返回异常,但邮件可能已发送: {e}")except Exception as e:print(f"❌ 邮件发送失败: {e}")raise
def check_ip():"""检查IP地址是否变化变化返回True,否则返回False"""driver = selenium_login()global WANIPif driver:newWANIP = get_ip_from_html(driver)if newWANIP == WANIP:print("✅ WAN IP 没有变化",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))driver.quit()return False;else:print("✅ WAN IP 发生变化:", newWANIP,"当前查询时间为:" ,time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))WANIP = newWANIPdriver.quit()return True;else:print("❌ 无法获取新的WAN IP, 请检查登录是否成功")driver.quit()return False;   if __name__ == "__main__":print("Start")while True:if(check_ip()):print("ready to send email")send_notification_by_email(WANIP, SENDER_EMAIL, QQ_EMAIL_PASSWORD, TARGET_EMAIL)time.sleep(CHECK_GAP)  # 等待指定的检查间隔时间

常用命令

sudo journalctl -u 服务名.service -n 50  # 查看最近 50 行

文章转载自:

http://7Gdfx75L.gyzfp.cn
http://60Hc287i.gyzfp.cn
http://kVRfhW5v.gyzfp.cn
http://rKzkr7C9.gyzfp.cn
http://ubQh7pck.gyzfp.cn
http://bh8vjd9m.gyzfp.cn
http://UuRHujwB.gyzfp.cn
http://6PxJQeLQ.gyzfp.cn
http://QW7so1X2.gyzfp.cn
http://vHps35J0.gyzfp.cn
http://naFyxxjE.gyzfp.cn
http://Mr3MK2VV.gyzfp.cn
http://OMqYinu7.gyzfp.cn
http://k13mNfqv.gyzfp.cn
http://XvFNKCPj.gyzfp.cn
http://qbDUX5Zs.gyzfp.cn
http://rOkvuMgh.gyzfp.cn
http://5NAM3iNb.gyzfp.cn
http://mD2xwDnd.gyzfp.cn
http://Mm2zDGrI.gyzfp.cn
http://xwqyN542.gyzfp.cn
http://fQDGhrzf.gyzfp.cn
http://sgPdbDMQ.gyzfp.cn
http://7L2ONroG.gyzfp.cn
http://hopU5swb.gyzfp.cn
http://b4pcWtaB.gyzfp.cn
http://w49Ko65P.gyzfp.cn
http://daBPkw7x.gyzfp.cn
http://r7ugTgWe.gyzfp.cn
http://d3xJr10A.gyzfp.cn
http://www.dtcms.com/wzjs/627416.html

相关文章:

  • 注册公司网站模板下载东莞易宣网站建设公司怎么样
  • 浙江建设职业技术学院招生网站注册网站刀具与钢材经营范围
  • 宁波网站制作 收费标准安防公司做网站图片
  • app软件网站建设沪尚茗居装修价格怎样
  • 公司开网站干嘛注册成立一个公司需要多少钱
  • 佛山模板网站建设家在深圳我在房网信息论坛
  • 国内最先做弹幕的网站如何免费制作一个自己的网站
  • 谁有好的网站推荐一个做pc网站排名
  • 标签式网站内容管理快速优化关键词排名
  • 站酷设计网站首页国内免费域名申请
  • 海口顶尖网站建设群辉怎么进入wordpress后台
  • 企业网站用什么域名企业产品展示网站模板
  • 平台和自建网站服务提供者昌乐网站制作价格
  • 广东网站搭建大连筑成建设集团有限公司网站
  • 哪一个网站做专栏作家好点hph网站模板
  • 怎样制作微信网站链接怎么修改网站的源代码
  • 长沙网站定制备案网站出售
  • 宝塔建设网站域名进不去传奇新开网站
  • wordpress chess怎么优化电脑系统
  • 个人备案域名可以做企业网站吗wordpress短代码使用
  • 成都门户网站有哪些郑州网站制作工作室
  • 人才网站开发文档wordpress地址更改
  • 深圳网站建设clh科凡全屋定制
  • 网站开发方案书松滋市住房和城乡建设局网站
  • 网站防火墙怎么做英文网站建设 济南
  • 17网站一起做网店打不开手机免费建站系统
  • 在线观看视频的免费网站深圳市宝安区邮编
  • 小城建设的网站做图片素材的网站有哪些
  • 重庆市建设项目环境影响评价网站地推团队联系方式
  • 长春建设集团网站免费做网站的app