Python 实现PPPOE自动拨号

文章目录

  • 一、WIN10添加PPPoE拨号连接设置
  • 二、python 实现
  • 三. Django 中使用 MySQL 存储时间遇到的问题


一、WIN10添加PPPoE拨号连接设置

1.1 右键点击桌面右下角的网络图标,打开网络和共享中心
1.2 在打开的网络和Internet中,从 拨号进入 设置新连接
1.3 在设置连接或网络向导中,选择 连接到Internet,并进入 新连接的设置
1.4 在连接到Internet对连接方式进行选择,一般来说宽带就是PPPoE模式
1.5 在选择之后,就是对用户名和密码,及名称进行设定

Python 实现PPPOE自动拨号_第1张图片

Python 实现PPPOE自动拨号_第2张图片

二、python 实现

代码如下(示例):

import os
import random
import time
import pymysql

global flag
global time_sum


def connect_ADSL(name,username,password):
    cmd_string = f'rasdial {name} {username} {password}'
    global flag, time_sum
    flag = os.system(cmd_string)
    print('flag:', flag)
    if flag == 0:
        time_sum = random.randint(3, 16)
        m = time_sum
        while m > 0:
            print("time_sum", m)
            m -= 1
            os.system('ping www.baidu.com')
            time.sleep(1)


def disconnect_ADSL(name):
    cmd_string = f'rasdial {name} /disconnect'
    os.system(cmd_string)


def sql():

    conn = pymysql.connect("127.0.0.1", "root", "X", "pppoe")

    cursor = conn.cursor()

    sql_select = "SELECT user_name,password FROM pppoe where time_sum is null"

    cursor.execute(sql_select)
    data = cursor.fetchall()
    for user in data:
        print(user[0], user[1], ' :select:', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
        time_start = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        time_end = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        connect_ADSL('PPPOE', user[0], user[1])
        print("flag:", flag)
        global time_sum

        if flag == 0:
            disconnect_ADSL('PPPOE')
            time_end = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
            sql_update = "UPDATE pppoe set flag =" + "'" + str(flag) + "', " \
                                          "time_sum =" + "'" + str(time_sum) + "', " \
                                          "time_start =" + "'" + time_start + "', " \
                                          "time_end =" + "'" + time_end + \
                         "' where user_name ='" + user[0] + "'"
            cursor.execute(sql_update)
        else:
            time_sum = 0
            sql_update = "UPDATE pppoe set flag =" + "'" + str(flag) + "', " \
                                          "time_sum =" + "'" + str(time_sum) + "', " \
                                          "time_start =" + "'" + time_start + "', " \
                                          "time_end =" + "'" + time_end + \
                         "' where user_name ='" + user[0] + "'"
            cursor.execute(sql_update)
        print(time_start, time_end)
        conn.commit()
    cursor.close()
    conn.close()


sql()

附:
Mysql字段varchar类型值前面拼接上0,使用、修改(concat函数的使用)

select concat('0',user_name) from  pppoe where flag != 0 and user_name = '7109908416'

update pppoe set user_name = concat('0',user_name) WHERE flag != 0 and user_name like '7%' ORDER BY time_start desc

mysql datetime时间比较 并清空

SELECT * FROM pppoemysql_pppoe3000 where time_end < '2021-08-26 16:40:16'

UPDATE pppoemysql_pppoe3000 set flag=null, time_sum=null, time_start=null,time_end=null where flag= '691'

三. Django 中使用 MySQL 存储时间遇到的问题

Django 在配置文件 settings.py 中对时间时区有影响的是两个参数,一个是 TIME_ZONE,另一个是 USE_TZ。根据 USE_TZ 官网文档中的描述,这一属性默认值是 False。如果设置为 Ture,Django 内部将会使用对时区敏感的时间,否则 Django 将会使用系统本地的原有时间。(注意:为了方便,由 django-admin.py startproject 创建而来的项目 settings.py 中此项值设置为了 Ture)

与这一属性相关的还有 TIME_ZONE, USE_I18N 和 USE_L10N,下面我们来看一下这几个属性。

Python 实现PPPOE自动拨号_第3张图片

你可能感兴趣的:(Python,python,爬虫,数据库)