国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python學習之編寫查詢ip程序

2020-01-04 17:42:03
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了python學習之編寫查詢ip程序 ,需要的朋友可以參考下
 

公司服務器上的ip最少的也有100多個,有時候查到一個站的Ip, 不想通過OA去查,自己就用自己最近學的python知識,結合數據庫,編寫了一python小程序。實現只要輸入主ip就能查到這臺服務器的子ip,輸入子ip能查到此ip所在的主服務器。

 

功能示例:

python學習之編寫查詢ip程序

使用 -m 參數 指定主服務器地址,即查詢此服務器上所有的子ip

python學習之編寫查詢ip程序

使用 -s 參數 指定子ip, 即可查詢此子ip所在的服務器主ip地址

python學習之編寫查詢ip程序

使用 -h 或 -help 參數可打印help

python學習之編寫查詢ip程序

使用 -v 或-version參數可打印版本

python學習之編寫查詢ip程序

如果程序參數不合法,則提示幫助

好了,功能就這么多,我們來看看怎么用python 實現的。

一,我們先看一下數據庫,看一下他的結構,其實數據庫里很簡單,只記錄了ip的對應關系。

如下圖

python學習之編寫查詢ip程序

 

 

二,我們來看一下程序是怎么寫的, 先貼一下程序。

#! /usr/bin/python#Filename select.pyimport MySQLdb,os,sys try:  conn = MySQLdb.connect("localhost","root","密碼","ips",charset="utf8")except MySQLdb.OperationalError, message:  print "link error" def masterip(ip):  sql="select secip from ip_master where masterip='%s'" %ip  cursor=conn.cursor()  n=cursor.execute(sql)  cds=cursor.fetchall()  for cd in cds:    for col in cd:      print "%s" % (col)  cursor.close()  conn.close() def secip(ip):  sql="select masterip from ip_master where secip='%s'" %ip  cursor=conn.cursor()  n=cursor.execute(sql)  cds=cursor.fetchall()  for cd in cds:    for col in cd:      print "%s" % (col)  cursor.close()  conn.close() if len(sys.argv)<2:  print "You have an error in you syntax,please you -help,-h for help"  sys.exit() if "-h"==sys.argv[1] or "-help"==sys.argv[1]:  print '''/This program select master ips and slave ips.Options include:-s slave ip :use slave ip to select msterip-m masterip :use master ip to select slaveip-h;-help  :help-v;-version :prints version '''  sys.exit() elif "-v"==sys.argv[1] or "-version"==sys.argv[1]:  print "Version is 0.1"  sys.exit() elif "-s"==sys.argv[1]:  if len(sys.argv)<3:    print "You have an error in you syntax,please you -help,-h for help"    sys.exit()  ip=sys.argv[2]  secip(ip) elif "-m"==sys.argv[1]:  if len(sys.argv)<3:    print "You have an error in you syntax,please you -help,-h for help"    sys.exit()  ip=sys.argv[2]  masterip(ip) else:  print "You have an error in you syntax,please you -help,-h for help"

三.對程序進行解釋

#! /usr/bin/python         import MySQLdb,os,sys   #加載 mysqldb os systry:  conn = MySQLdb.connect("localhost","root","密碼","ips",charset="utf8")except MySQLdb.OperationalError, message:  print "link error" #嘗試利用括號里的信息去連接數據庫,如果連接數據庫不成功剛打印link error!  def masterip(ip):  sql="select secip from ip_master where masterip='%s'" %ip  cursor=conn.cursor()  n=cursor.execute(sql)  cds=cursor.fetchall()  for cd in cds:    for col in cd:      print "%s" % (col)  cursor.close()  conn.close() # 定義一個masterip函數, 括號里的ip 為參數,在下面的sql語句里用到。sql后面是查詢語句。 利用上面括號里定義的ip 去查詢 子ip。再利用for 循環逐個打印出ip! def secip(ip):  sql="select masterip from ip_master where secip='%s'" %ip  cursor=conn.cursor()  n=cursor.execute(sql)  cds=cursor.fetchall()  for cd in cds:    for col in cd:      print "%s" % (col)  cursor.close()  conn.close() # 定義一個secip函數, 括號里的ip 為參數,在下面的sql語句里用到。sql后面是查詢語句。 利用上面括號里定義的ip 去查詢 主ip。再利用for 循環逐個打印出ip! if len(sys.argv)<2:  print "You have an error in you syntax,please you -help,-h for help"  sys.exit() # 判斷命令行參數,如果命令行參數小于2,(命令本身就屬于一個參數)就打印提示信息,并退出,此行的意思就是半數命令后面有沒有跟參數,如果沒有跟參數,就直接退出。 if "-h"==sys.argv[1] or "-help"==sys.argv[1]:  print '''/This program select master ips and slave ips.Options include:-s slave ip :use slave ip to select msterip-m masterip :use master ip to select slaveip-h;-help  :help-v;-version :prints version '''  sys.exit() #判斷命令行第一個數據是不是 -h (注,命令行參數是從0開始,0 也就是命令本身),如果是 -h的話,就打印幫助信息,并退出。 elif "-v"==sys.argv[1] or "-version"==sys.argv[1]:  print "Version is 0.1"  sys.exit() #判斷命令行第一個數據是不是 -v (注,命令行參數是從0開始,0 也就是命令本身),如果是 -v的話,就打印版本信息,并退出。 elif "-s"==sys.argv[1]:  if len(sys.argv)<3:    print "You have an error in you syntax,please you -help,-h for help"    sys.exit()  ip=sys.argv[2]  secip(ip) #判斷命令行第一個數據是不是 -s (注,命令行參數是從0開始,0 也就是命令本身),如果是 -s的話,判斷命令行參數是否小于3,也就是 -s 后面有沒有跟參數(ip), 如果沒跟的話,就打印提示信息,并退出 。如果跟了的話,就把-s 后面的參數給 ip這個變量,并執行 secip() 這個函數。 elif "-m"==sys.argv[1]:  if len(sys.argv)<3:    print "You have an error in you syntax,please you -help,-h for help"    sys.exit()  ip=sys.argv[2]  masterip(ip) #判斷命令行第一個數據是不是 -m (注,命令行參數是從0開始,0 也就是命令本身),如果是 -m的話,判斷命令行參數是否小于3,也就是 -m 后面有沒有跟參數(ip), 如果沒跟的話,就打印提示信息,并退出 。如果跟了的話,就把-m 后面的參數給 ip這個變量,并執行 masterip() 這個函數。 else:  print "You have an error in you syntax,please you -help,-h for help"

如果跟上面所有的參數都不符合,就直接打印幫助信息。

Ok!程序完了。很簡單,但好像也很實用。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台东县| 钟祥市| 忻城县| 汶川县| 临夏县| 濮阳市| 九江市| 澄城县| 崇州市| 鹿泉市| 盐亭县| 商城县| 彭州市| 大余县| 洞口县| 丰原市| 买车| 西乌| 崇仁县| 甘德县| 阳江市| 云霄县| 修武县| 平南县| 葵青区| 庆元县| 长泰县| 长丰县| 福清市| 新乡县| 巫山县| 巨野县| 桐城市| 满城县| 汶川县| 宿州市| 灵武市| 伊宁县| 林西县| 邳州市| 耒阳市|