V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zhujunhan7
V2EX  ›  Python

能不能写一个不停监测一个 ip,上线和下线用 srver 酱关联微信提醒的小程序。

  •  
  •   zhujunhan7 · 2018-11-18 20:45:18 +08:00 via iPad · 2827 次点击
    这是一个创建于 2204 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7 条回复    2018-11-19 12:58:05 +08:00
    Event
        1
    Event  
       2018-11-18 21:25:38 +08:00
    你好 可以 再见
    annoy1309
        2
    annoy1309  
       2018-11-18 21:32:45 +08:00
    能,不难
    AlisaDestiny
        3
    AlisaDestiny  
       2018-11-18 22:19:49 +08:00
    easy.具体需求说下。
    wdc63
        4
    wdc63  
       2018-11-18 22:34:01 +08:00
    '''python
    #pip install requests
    import subprocess, platform
    import requests
    import time
    def ping(host):
    """
    Returns True if host responds to a ping request
    """
    import subprocess, platform

    # Ping parameters as function of OS
    ping_str = "-n 1" if platform.system().lower()=="windows" else "-c 1"
    args = "ping " + " " + ping_str + " " + host
    need_sh = False if platform.system().lower()=="windows" else True

    # Ping
    return subprocess.call(args, shell=need_sh) == 0

    on_state = 1
    off_state = 1


    def watch(host):
    global on_state, off_state
    while True:
    get_ping = ping(host)
    if get_ping:
    ##如果检测到在线,且离线状态为真(off_state>0),发送上线信号,并将离线状态重置为假(=0 )
    if off_state > 0:
    off_state = 0
    requests.get("https://sc.ftqq.com/[SCKEY(登入后可见)].send?text=服务器上线!")
    else:
    on_state += 1
    else:
    ##如果检测到连续离线五次,且在线状态为真(off_state>0),发送离线信号,并将在线状态重置为假(=0 )
    if on_state > 0 and off_state >= 5:
    on_state = 0
    requests.get("https://sc.ftqq.com/[SCKEY(登入后可见)].send?text=服务器离线!")
    else:
    off_state += 1
    time.sleep(1)

    watch('www.baidu.com')
    '''
    wdc63
        5
    wdc63  
       2018-11-18 22:36:56 +08:00
    https://gist.github.com/wdc63/869c104ac43841f20b25a40b4dd3b7d9

    不会插代码,晕死,拿去试试,随便写了,没有试运行过
    Tink
        6
    Tink  
       2018-11-19 00:33:11 +08:00 via iPhone
    很简单
    winglight2016
        7
    winglight2016  
       2018-11-19 12:58:05 +08:00
    8 年以前写过一个 Android app 就是做这个事儿的,好久没维护了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:49 · PVG 19:49 · LAX 03:49 · JFK 06:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.