Python之自动获取公网IP的实例讲解
0.1SQL基础
ubuntu、Debian系列安装:
root@raspberrypi:~/python-script#apt-getinstallmysql-server
Redhat、Centos系列安装:
[root@localhost~]#yuminstallmysql-server
登录数据库
pi@raspberrypi:~$mysql-uroot-p-hlocalhost Enterpassword: WelcometotheMariaDBmonitor.Commandsendwith;or\g. YourMariaDBconnectionidis36 Serverversion:10.0.30-MariaDB-0+deb8u2(Raspbian) Copyright(c)2000,2016,Oracle,MariaDBCorporationAbandothers. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. MariaDB[(none)]>
其中,mysql是客户端命令-u是指定用户-p是密码-h是主机
创建数据库、创建数据表
创建数据库语法如下
MariaDB[(none)]>helpcreatedatabase Name:'CREATEDATABASE' Description: Syntax: CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name [create_specification]... create_specification: [DEFAULT]CHARACTERSET[=]charset_name |[DEFAULT]COLLATE[=]collation_name CREATEDATABASEcreatesadatabasewiththegivenname.Tousethis statement,youneedtheCREATEprivilegeforthedatabase.CREATE SCHEMAisasynonymforCREATEDATABASE. URL:https://mariadb.com/kb/en/create-database/ MariaDB[(none)]>
创建数据表语法如下
MariaDB[(none)]>helpcreatetable Name:'CREATETABLE' Description: Syntax: CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name (create_definition,...) [table_options] [partition_options] Or: CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name [(create_definition,...)] [table_options] [partition_options] select_statement
创建数据库ServiceLogs
MariaDB[(none)]>CREATEDATABASE`ServiceLogs`
创建数据表
MariaDB[(none)]>CREATETABLE`python_ip_logs`( `serial_number`bigint(20)NOTNULLAUTO_INCREMENT, `time`datetimeDEFAULTNULL, `old_data`varchar(50)DEFAULTNULL, `new_data`varchar(50)DEFAULTNULL, PRIMARYKEY(`serial_number`) )ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=latin1
表内容的查询
MariaDB[ServiceLogs]>select*frompython_ip_logs; Emptyset(0.00sec)
0.2python连接操作MySQL
模块下载安装
下载路径:https://pypi.python.org/pypi/MySQL-python
安装:
安装: 解压 unzipMySQL-python-1.2.5.zip 进入解压后目录 cdMySQL-python-1.2.5/ 安装依赖 apt-getinstalllibmysqlclient-dev 安装 pythonsetup.pyinstall 如果为0则安装OK echo$?
连接Mysql
root@raspberrypi:~/python-script#catp_mysql_3.py #!/usr/bin/envpython importMySQLdb try: conn=MySQLdb.connect("主机","用户名","密码","ServiceLogs") print("ConnectMysqlsuccessful") except: print("ConnectMySQLFail") root@raspberrypi:~/python-script#
如果输出ConnectMysqlsuccessful则说明连接OK
PythonMySQLinsert语句
root@raspberrypi:~/python-script#catp_mysql1.py #!/usr/bin/envpython importMySQLdb db=MySQLdb.connect("localhost","root","root","ServiceLogs") cursor=db.cursor() sql="insertINTOpython_ip_logsVALUES(DEFAULT,'2017-09-2922:46:00','123','456')" cursor.execute(sql) db.commit() db.close() root@raspberrypi:~/python-script#
执行完成后可以mysql客户端SELECT语句查看结果
1.需求
1.1需求
由于宽带每次重启都会重新获得一个新的IP,那么在这种状态下,在进行ssh连接的时候会出现诸多的不便,好在之前还有花生壳软件,它能够通过域名来找到你的IP地址,进行访问,这样是最好的,不过最近花生壳也要进行实名认证才能够使用,于是乎,这就催发了我写一个python脚本来获取公网IP的冲动。
实现效果:当IP变更时,能够通过邮件进行通知,且在数据库中写入数据
1.2