“总督是我”通过精心收集,向本站投稿了9篇Python访问纯真IP数据库脚本,这里小编给大家分享一些Python访问纯真IP数据库脚本,方便大家学习。

篇1:Python访问纯真IP数据库脚本
这篇文章主要介绍了Python访问纯真IP数据库脚本分享,本文直接给出实现代码,需要的朋友可以参考下
项目中有这样的需求,通过IP地址判断客户端是网通的还是电信的,从同事那拿了个纯文本的IP纯真数据库,用Python写了一个小程序,感觉挺好的。下面给出实现源码:
#!/usr/bin/env python# -*- coding: utf-8 -*-from bisect import bisect_LIST1, _LIST2 = [], []_INIT = Falseip2int = lambda ip_str: reduce(lambda a, b: (a << 8) + b, [int(i) for i in ip_str.split(‘.‘)])def _init: global _LIST, _INIT if not _INIT: for l in open(‘ipdata.txt‘, ‘rb‘):ip1, ip2 = l.split()[:2]addr = ‘ ‘.join(l.split()[2:])ip1, ip2 = ip2int(ip1), ip2int(ip2)_LIST1.append(ip1)_LIST2.append((ip1, ip2, addr)) _INIT = True def ip_from(ip): _init() i = ip2int(ip) idx = bisect(_LIST1, i) assert(idx > 0) if len(_LIST1) <= idx: return u‘unknown ip address %s‘ % ip else: frm, to ,addr = _LIST2[idx - 1] if frm <= i <= to:return addr else:return u‘unknown ip address %s‘ % ip if __name__ == ‘__main__‘: print ip_from(‘115.238.54.106‘) print ip_from(‘220.181.29.160‘) print ip_from(‘115.238.54.107‘) print ip_from(‘8.8.8.8‘)
篇2:python访问纯真IP数据库的代码
-10-10python 不关闭控制台的实现方法
-03-03python操作数据库之sqlite3打开数据库、删除、修改示例
2014-06-062款Python内存检测工具介绍和使用方法
-08-08Python正则表达式介绍
-07-07python 自动提交和抓取网页
-09-09Python 除法小技巧
-01-01Python高效编程技巧
2009-01-01Python 调用DLL操作抄表机
2008-09-09Python 初始化多维数组代码
2014-01-01python3使用tkinter实现ui界面简单实例
篇3:python访问纯真IP数据库的代码
最近更 新
python实现网页链接提取的方法分享
python使用urllib模块和pyquery实现阿里巴
python判断、获取一张图片主色调的2个实例
python为tornado添加recaptcha验证码功能
python实现rest请求api示例
pytyon 带有重复的全排列
python mysqldb连接数据库
python线程池的实现实例
videocapture库制作python视频高速传输程
python中使用urllib2获取http请求状态码的
热 点 排 行
Python入门教程 超详细1小时学会
python 中文乱码问题深入分析
比较详细Python正则表达式操作指
Python字符串的encode与decode研
Python open读写文件实现脚本
Python enumerate遍历数组示例应
Python 深入理解yield
Python+Django在windows下的开发
python 字符串split的用法分享
python 文件和路径操作函数小结

篇4:VBS纯真IP数据库转MDB/MSSQL/MySQL技巧
Function Mappath(n)
Mappath=fso.getabsolutepathname(n)
End Function
Function ipToNum(Ip)
IpNs=split(ip,“.”)
IpN=IpNs(0)*S4+IpNs(1)*S3+IpNs(2)*S2+IpNs(3)*S1
if err0 then IpN=0
err.clear
IpToNum=IpN
End Function
www.dnzg.cn
S1=256
S2=256*S1
S3=256*S2
S4=256*S3
on error resume next
Set Fso=CreateObject(“Scripting.FileSystemObject”)
Set Conn=CreateObject(“ADODB.Connection”)
Conn.open “PRovider=microsoft.jet.oledb.4.0;data source=”&Mappath(“dat.mdb”)
Set Rs=CreateObject(“ADODB.Recordset”)
Rs.open “S elect * from d”,Conn,2,3
Set Fto=Fso.OpenTextFile(Mappath(“dat.txt”))
Do while not Fto.atendofstream
Rs.addnew
Res=Split(Replace(Replace(Fto.Readline,“ ”,“”),“ ”,“ ”),“ ”)
Rs(“s”)=IpToNum(Res(0))
Rs(“e”)=IpToNum(Res(1))
Rs(“c”)=Res(2)
Rs(“h”)=Res(3)
Wscript.Echo “From ”&Res(0)&“ To ”&Res(1)&“ Updated.”
Rs.update
Loop
Rs.close
注意S elect中间有空格,复制时候请去掉中间空格,
VBS纯真IP数据库转MDB/MSSQL/MySQL技巧
,
复制代码,保存另存为.vbs 即可。
将纯真数据库转MSSQL数据库也很简单,只需改
程序代码
Conn.open “driver={SQL Server}; server=(local);database= ;uid= ;pwd= ”
将纯真数据库转MySQL数据库,只需改
程序代码
Conn.open “Driver={mysql};database=[yourdatabase];uid=[username];pwd=[yourpassWord];option=16386;”
篇5:Shell、Perl、Python、PHP访问 MySQL 数据库代码实例
这篇文章主要介绍了Shell、Perl、Python、PHP访问 MySQL 数据库代码实例,本文分别给出这几种语言访问Mysql数据的代码实例,需要的朋友可以参考下
下午写了一个简单的 bash 脚本,用来测试程序,输入一个测试用例文件,输出没有通过测试的用例和结果,然后把结果保存到数据库里,如何在 bash 脚本里直接访问数据库呢?既然在 shell 里可以直接用 mysql 命令操作数据库,那么在 shell script. 里也应该可以通过调用 mysql 来操作数据库。比如用下面的 bash shell 脚本查询数据库:
Bash
代码如下:
#!/bin/bash
mysql -uvpsee -ppassword test << EOFMYSQL
select * from test_mark;
EOFMYSQL
如果需要复杂的数据库操作的话不建议用 shell 脚本,用 Perl/Python/PHP 操作数据库很方便,分别通过 Perl DBI/Python MySQLdb/PHP MySQL Module 接口来操作数据库。这里再给出这三种不同语言连接、查询数据库的简单例子(为了简单和减少篇幅删除一些不必要的代码):
Perl
代码如下:
#!/usr/bin/perl
use DBI;
$db = DBI->connect(‘dbi:mysql:test‘, ‘vpsee‘, ‘password‘);
$query = “select * from test_mark”;
$cursor = $db->prepare($query);
$cursor->execute;
while (@row = $cursor->fetchrow_array) {
print “@rown”;
}
Python
代码如下:
#!/usr/bin/python
import MySQLdb
db = MySQLdb.Connect(“localhost”, “vpsee”, “password”, “test”)
cursor = db.cursor
query = “SELECT * FROM test_mark”
cursor.execute(query)
while (1):
row = cursor.fetchone()
if row == None:
break
print “%s, %s, %s, %s” % (row[0], row[1], row[2], row[3])
PHP
代码如下:
#!/usr/bin/php
$db = mysql_connect(“localhost”, “vpsee”, “password”);
mysql_select_db(“test”);
$result = mysql_query(“SELECT * FROM test_mark”);
while ($row = mysql_fetch_array($result)) {
print “$row[0] $row[1] $row[2] $row[3]n”;
}
?>
篇6:在PowerScript脚本中访问数据窗口中的数据数据库教程
访问|脚本|数据
在PowerScript脚本中访问数据窗口中的数据张健姿 01-6-22 下午 03:50:25
在4.0 以 前 的 版 本, 如 果 您 想 在PowerScript. 脚 本 中 访 问数 据 窗 口 中 的 数 据, 方 法 只 有 一 种, 那 就 是 使 用SetItem 和GetItem 系 列 的 函 数, 指 定 您 所 要 访 问 的 某 一 行 列 的 值, 这 一 方 法的 局 限 性 在 于 您 一 次 只 能 访 问 到 一 个 数 值, 而 在5.0 版 中,PowerBuilder 拓 展 了 数 据 窗 口 的 属 性, 使 数 据 窗 口 中 的 数 据 成 为 了 该对 象 的 一 个 属 性, 而 使 用 户 可 以 象 访 问 其 它 对 象 属 性 一样 直 接 访 问 数 据 窗 口 的 数 据 了。 这 样 我 们 就 有 了 两 种 访问 数 据 的 方 法 了。 1. 传 统 的 使 用SetItem 和GetItem 系 列 函 数, 如: dw_1.SetItem(1, “empname”, “Phillips”) ls_name = dw_1.GetItemString(1, “empname”) 2. 表 达 式 的 方 法, 这 种 方 法 可 以 指 定 某 一 列、 某 一行、 某 一 块、 或 是 用 户 选 中 的 行 列、 甚 至 整 个 数 据 窗 口 控件 的 全 部 数 据, 如: dw_1.Object.empname[1] = “Phillips” dw_1.Object.Data[1,1] = “Phillips” 这 两 种 方 法 都 可 以 允 许 用 户 指 定 特 定 的 数 据 缓 冲区, 也 就 是 说 您 采 用 任 何 一 种 方 法 都 可 以 访 问 到 数 据 被修 改 前 的 原 始 值、 被 过 滤 掉 的 值、 被 删 去 的 值 及 当 前 值 等。 在 大 多 数 情 况 下, 您 可 以 采 用 这 两 种 方 法 中 的 任 一种, 但 这 两 种 方 法 在 使 用 时 也 是 各 有 利 弊 的。 如 果 您 只 是 要 访 问 某 行 某 列 的 一 个 数 值, 两 种 方 法在 执 行 效 率 上 是 基 本 相 同 的 的。 如 果 您 打 算 采 用 数 据 窗 口 的 列 名 而 不 是 数 值 来 表示 某 一 列, 而 这 一 列 的 列 名 在 运 行 前 又 不 知 道, 或 是 要 根据 用 户 的 不 同 输 入 来 决 定, 那 您 只 能 采 用 函 数 法, 因 为 这一 方 法 可 以 动 态 地 改 变 列 名。 如 果 您 需 要 访 问 的 数 据 不 止 一 列, 而 是 确 定 范 围 的多 行 多 列, 那 您 采 用 表 达 式 法 将 获 得 更 高 的 效 率。 表 达 式 法 是PowerBuilder5.0 新 增 加 的 功 能, 虽 说 这 种 方法 可 使 得 数 据 窗 口 的 面 向 对 象 的 特 性 更 为 明 显, 语 言 的表 达 也 更 为 直 观, 易 于 使 旁 观 者 阅 读 他 人 的 程 序 时 容 易看 懂, 但 是 这 种 方 法 的 语 法 形 式 却 是 很 复 杂 多 样, 使 用 起来 却 不 太 容 易。 总 体 上 讲, 表 达 式 的 语 法 可 以 分 成3 组: 直 接 指 定 列 名 称 法: 如 果 您 事 先 知 道 您 需 要 访 问 数 据的 列 名, 而 且 仅 访 问 这 一 列, 可 以 采 用 这 种 方 法。 选 择 这 一 控 件 中 一 条 记 录 或 多 条 记 录 dwcontrol.object.columnname {.buffer } {.datasource } { [ startrownum{, endrownum} ] } 我 们 在 前 面 的 专 题 中 曾 经 介 绍 过 关 于 数 据 窗 口 的四 个 缓 冲 区, 在 这 条 命 令 的 语 法 中buffer 选 项 就 可 以 选 择Primary,Filter 或Delete 这 三 个 缓 冲 区, 缺 省 为Primary;datasource 选 项 为Current 或Original, 缺 省 为Current。 如 果 您 选 择Original, 则 系 统 将 到数 据 窗 口 的Original 缓 冲 区 中 去 读 取 数 据, 显 然Original 缓 冲区 是 只 读 的, 您 不 能 对 其 赋 值。 在 后 面 的 方 括 号 中, 您 可以 指 定 您 打 算 访 问 的 这 一 列 中 的 起 止 记 录 数, 如 果 只 是一 条 记 录, 您 在StartRownum 中 指 定 行 号 就 可 以 了; 如 果 方 括号 中 两 个 参 数 全 部 缺 省, 则 指 这 一 列 的 全 部 记 录。 例 如:string ls_namels_name = dw_1.Object.name[1]又 如:dw_1.Object.salary[8,12] = id_salaryid_salary 是 一 个 数 组, 如 果 其 中 只 有 四 个 元 素, 则 第12 行salary 的 值 为 空。 选 择 这 个 数 据 窗 口 控 件 中 加 亮 的 记 录 dwcontrol.Object.columnname {.Primary }{.datasource } .Selected 在 数 据 窗 口 中 加 亮 的 记 录 就 是 您 曾 经 使 用 过SelectRow 函 数 对 其 进 行 加 亮 表 示 这 一 行 选 中 的 记 录,
显 然, 对 这 一特 性 数 据 的 访 问 只 能 是Primary 缓 冲 区 中 的, 不 过 数 据 源 仍然 可 以 选 择 是 当 前 还 是 原 始 的。 如 果 选 择 原 始, 也 就 是 说您 得 到 的 数 据 是 从 数 据 库 中 查 到 的, 修 改 前 的 数 据。 例 如:string ls_namels_name = dw_1.Object.name.Selected使 用 数 值 来 表 示 列:dwcontrol.Object.Data {.buffer } {.datasource } [ startrownum, startcolnum, endrownum, endcolnum ]我 们 知 道 在SetItem 和GetItem 系 列 的 函 数 中, 对 列 的 表达 既 可 以 用 列 名 也 可 以 采 用 数 值 指 示, 在 这 里 也 是 同 样。如 果 我 们 采 用 数 值 指 代 列 名 的 方 法, 同 上 一 种 比 较, 我 们要 将 列 名 换 成 了 关 键 词Data, 在 后 面 的 方 括 号 中, 参 数 变成 了 四 个。 这 一 表 达 式 的 返 回 值 将 是 一 个 结 构 数 组, 或 是一 个 用 户 对 象。 必 须 注 意, 您 所 定 义 的 结 构 或 用 户 对 象 必须 与 数 据 窗 口 的 这 几 列 的 数 据 类 型 相 匹 配, 否 则PowerBuilder 将 出 现 错 误。 对 整 行 记 录 的 操 纵:dwcontrol.Object.Data {.buffer } {.datasource } { [ rownum ] }这 一 种 方 法 是 上 一 种 方 法 的 特 例, 如 果rownum 中 的 数值 缺 省, 将 表 示 整 个 数 据 窗 口 的 全 部 数 据。 例 如 数 据 窗 口 中 的 列 名 及 数 据 类 型 是 这 样 的: ID (number)name (string)retired_status (boolean)birth_date (date) 首 先 我 们 要 在 结 构 画 笔 中 定 义 一 个str_empdata 的 数 据结 构。 它 包 括 四 个 元 素, 类 型 分 别 是: integer, string, boolean 和date 执 行 下 列 代 码: str_empdata lstr_currdata[] lstr_currdata = dw_1.Object.Data 这 样lstr_currdata 结 构 中 数 组 的 上 界 将 用 数 据 窗 口 控件 中 记 录 的 行 数 相 等, 并 完 成 了 赋 值。 我 们 还 可 以 用 这 种 方 法 指 定 这 一 控 件 中 高 亮 度 的行 dwcontrol.Object.Data {.Primary } {.datasource } .Selected 这 三 种 形 式 的 功 能 比 较 如 下: 访 问 范 围 语 法 访 问 控 件 中 高 亮 度 的 行 1 一 列 dwcontrol.object.columnname{.buffer } {.datasource} 能 2 多 列 dwcontrol.object.data{.buffer } {.datasource} 不 能 3 一 条 记 录 的 全 部 列 dwcontrol.object.data{.buffer } {.datasource} 能 在 使 用 这 些 语 句 时 我 们 要 注 意 以 下 几 点: 同 使 用SetItem 和GetItem 系 列 函 数 一 样, 在 编 译 时PowerBuilder 将 不 检 查 您 所 指 示 的 列 的 有 效 性, 您 必 须 自 行 检 查 并 确保 引 用 的 有 效 性。 在 第 一 种 方 法 中 我 们 必 须 注 意 在 列 名 后 面 一 定 要有 所 后 缀, 例 如: ld_salary[] = dw_1.object.emp_salary.primaryld_salray = dw_1.object.emp_salary[5]上 述 表 达 式 都 是 合 法 的, 但 是ld_salary[] = dw_1.object.emp_salary就 是 非 法 表 达 了。因 为dw_1.object.emp_salary 指 代 的 是 这 个emp_salary 列 的DWObject 对 象, 而 不 是 在emp_salary 列 中 的 数 据。 我 们 可 以 用dw_1.object.emp_salary 来 指 代 数 据 窗 口 中 的 对 象, 如: integer li_data DWObject dwo_empsalary dwo_empsalary = dw_1.Object.emp_salary FOR li_cnt = 1 to 100 li_data = dwo_empsalary[li_cnt] .........NEXT 这 种 表 达 式 法 返 回 的 数 据 类 型 是ANY 型 的,PowerBuilder 将 根 据“ 兼 容” 原 则 转 换 数 据 库 与PowerBuilder 的 数 据 类 型,因 此 如 果 您 调 用 的 重 载 函 数 要 使 用 表 达 式 法 得 到 数 据 窗口 的 数 据 作 为 参 数, 建 议 您 一 定 使 用 一 个 强 制 转 换 数 据类 型 的 函 数。 例 如: wf_overload(real(dw_1.object.dept_id[1]))
篇7:linux中利用python脚本备份mysql、redis、mongodb数据库linux操作系统
linux中利用python脚本可以快速实现备份mysql、redis、mongodb数据库或者media目录哦,下面我们把代码名字写成bakdata吧,下面一起来看看几个实用的例子吧,
安装可以直接用pip执行:
代码如下复制代码pip install yunbk
github地址如下:
github.com/dantezhu/yunbk
而用法也非常简单,比如要备份mysql,则代码如下:
代码如下复制代码from yunbk import YunBKfrom yunbk.backend.local import LocalBackend
import sh
backend = LocalBackend('/data/backup')
with YunBK('mysql', [backend]) as ybk:
sh.mysqldump(u='root',
all_databases=True,
_out=“dump.sql”)
ybk.backup
怎么样,简单吧!
上面的代码会将mysql的所有数据库dump下来之后,保存到本地的 /data/backup 目录,并且按照分类和日期命名。除了保存到本地之外,yunbk还提供了 ftp, sftp, 百度的bcs,阿里的oss等多种备份方式.
简单讲一下yunbk的设计原理:
在上面的代码中,用with语句进入了yunbk指定的一个默认临时目录,此时所有的文件写入都会在这个目录里。
当调用backup的时候,yunbk会调用[backend] 中每个backend的upload方法,将数据备份起来
当with结束的时候,yunbk创建的临时目录会自动删除,即不会留下任何痕迹
需要特别说明的是,yunbk是受 bakthat 这个插件启发而来,只是他默认使用亚马逊作为备份方式,在天朝你懂得,另外还有一些实现方式觉得不是特别好,代码有些冗余,所以就自己实现了一个。
废话就不多少了,列一下常用的几种被封方式的示例:
FTP备份
代码如下复制代码from yunbk import YunBKfrom yunbk.backend.ftp import FTPBackend
import sh
backend = FTPBackend('127.0.0.1', 'user', 'passwd', '/data/backup')
with YunBK('mysql', [backend]) as ybk:
sh.mysqldump(u='root',
all_databases=True,
_out=“dump.sql”)
ybk.backup()
阿里OSS备份
代码如下复制代码from yunbk import YunBK
from yunbk.backend.ali_oss import OSSBackend
import sh
backend = OSSBackend('127.0.0.1', 'access_id', 'secret_access_key', 'backup_my_data')
with YunBK('mysql', [backend]) as ybk:
sh.mysqldump(u='root',
all_databases=True,
_out=“dump.sql”)
ybk.backup()
sftp 和 百度bcs 就不写啦,大家应该已经能够自己写出来啦
另外,推荐结合定时执行的库: APScheduler 一起使用,很方便:
# -*- coding: utf-8 -*-
import datetime
from apscheduler.scheduler import Scheduler
from apscheduler.events import EVENT_JOB_ERROR, EVENT_JOB_MISSED
import logging
from yunbk.yunbk import YunBK
from yunbk.backend.local import LocalBackend
logger = logging.getLogger('default')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
sched = Scheduler(daemonic=False)
def err_listener(ev):
if ev.exception:
logger.fatal('%s error.', str(ev.job), exc_info=True)
else:
logger.info('%s miss', str(ev.job))
@sched.cron_schedule(second='1')
def job():
logger.debug(datetime.datetime.now())
backend = LocalBackend('/data/release/backup/')
with YunBK('ybk', [backend]) as ybk:
f = open('t2.txt', 'w')
f.write('ok')
f.close()
ybk.backup()
if __name__ == '__main__':
sched.add_listener(err_listener, EVENT_JOB_ERROR | EVENT_JOB_MISSED)
sched.start()
好啦,就到这里,希望对大家有用:)
篇8:Python 分析Nginx访问日志并保存到MySQL数据库实例
-12-12python复制文件代码实现
2013-03-03python 字符串格式化代码
2013-12-12python算法学习之桶排序算法实例(分块排序)
-03-03python 获取文件列表(或是目录例表)
-03-03Python自定义函数的创建、调用和函数的参数详解
2009-09-09phpsir 开发 一个检测百度关键字网站排名的python 程序
-05-05python操作MySQL数据库的方法分享
2014-01-01python中mechanize库的简单使用示例
2014-04-04python局域网ip扫描示例分享
2013-12-12python连接mysql数据库示例(做增删改操作)
篇9:Python 分析Nginx访问日志并保存到MySQL数据库实例
最近更 新
python生成指定长度的随机数密码
python创建和使用字典实例详解
爬山算法简介和Python实现实例
Python实现的几个常用排序算法实例
rhythmbox中文名乱码问题解决方法
python基础教程之python消息摘要算法使用
下载糗事百科的内容_python版
flask中使用SQLAlchemy进行辅助开发的代码
python冒泡排序算法的实现代码
python实现异步回调机制代码分享
热 点 排 行
Python入门教程 超详细1小时学会
python 中文乱码问题深入分析
比较详细Python正则表达式操作指
Python字符串的encode与decode研
Python open读写文件实现脚本
Python enumerate遍历数组示例应
Python 深入理解yield
Python+Django在windows下的开发
python 文件和路径操作函数小结
python 字符串split的用法分享











