标签:# tools

号码归属地信息从dat文件导出成列表

广电开始有电信业务了,号码归属地表又是一顿更新,如果跟不上步伐可能会引发一些事故。目前暂时本人暂时无法做到自己去爬数据,所以就只能借助网上大佬的数据库来使用了。 找了一圈,找到了lovedboy大佬的github库。以及相对应的脚本。原本的使用方法应该是数据文件+脚本形成可以即时调用的方法,但无奈自家是写进mysql的,只能无奈将其导出。 修改了大佬的原调用脚本,测试失败。😅 索性摆烂,将大佬脚本和需求丢进chatgpt跑一圈,出来以下脚本,试运行,丝滑。😲 放出来给大家看看。 # -*- coding: utf-8 -*- import os import struct import sys __author__ = 'lovedboy' if sys.version_info > (3, 0): def get_record_content(buf, start_offset): end_offset = buf.find(b'\x00', start_offset) return buf[start_offset:end_offset].decode() else: def get_record_content(buf, start_offset): end_offset = buf.find('\x00', start_offset) return buf[start_offset:end_offset] class Phone(object): def __init__(self, dat_file=None): if dat_file is None: dat_file = os.path.join(os.path.dirname(__file__), "phone.dat") with open(dat_file, 'rb') as f: self.buf = f.read() self.head_fmt = "<4si" self.phone_fmt = "<iiB" self.head_fmt_length = struct.calcsize(self.head_fmt) self.phone_fmt_length = struct.calcsize(self.phone_fmt) self.version, self.first_phone_record_offset = struct.unpack( self.head_fmt, self.buf[:self.head_fmt_length]) self.phone_record_count = (len(self.buf) - self.first_phone_record_offset) // self.phone_fmt_length def get_phone_dat_msg(self): print("版本号:{}".format(self.version)) print("总记录条数:{}".format(self.phone_record_count)) @staticmethod def get_phone_no_type(no): if no == 4: return "电信虚拟运营商" if no == 5: return "联通虚拟运营商" if no == 6: return "移动虚拟运营商" if no == 3: return "电信" if no == 2: return "联通" if no == 1: return "移动" @staticmethod def _format_phone_content(phone_num, record_content, phone_type): province, city, zip_code, area_code = record_content.split('|') return { "phone": phone_num, "province": province, "city": city, "zip_code": zip_code, "area_code": area_code, "phone_type": Phone.get_phone_no_type(phone_type) } def _parse_record(self, record): phone_num, record_offset, phone_type = struct.unpack(self.phone_fmt, record) record_content = get_record_content(self.buf, record_offset) return Phone._format_phone_content(phone_num, record_content, phone_type) def all(self): records = [] buflen = len(self.buf) for i in range(self.first_phone_record_offset, buflen, self.phone_fmt_length): record = self.buf[i: i + self.phone_fmt_length] records.append(self._parse_record(record)) return records def test(self): self.get_phone_dat_msg() records = self.all() for record in records: print(self.human_phone_info(record)) @staticmethod def human_phone_info(phone_info): if not phone_info: return '' return "{}|{}|{}|{}|{}|{}".format(phone_info['phone'], phone_info['province'], phone_info['city'], phone_info['zip_code'], phone_info['area_code'], phone_info['phone_type']) if __name__ == "__main__": phone = Phone() phone.test()
Read More ~

简单实用flash再就业计划

历史原因不在过多陈述,置于为什么突然要发这个,是因为看到差评公众号发表的“从浏览器沦为系统毒瘤:无法禁用的IE背后,是几百亿的家族生意”下有人回复说flash还得专门下载一个内嵌flash的浏览器。 今天我就教大家怎么安装纯净版flash(个人认为)以及支持flash的chrome浏览器怎么获得。 东西丢开头,怎么用慢慢看。(所有资源均来自互联网,与本人无关) Flash清理及三合一安装包: Adobe Flash Player v34_0_0_282 https://magicgenius.lanzoub.com/b090h7ccd 密码:15s3 低版本chrome 制作教程。 https://www.jianshu.com/p/78bdfacac376 https://www.chromedownloads.net/chrome64win/ 成品: 百度网盘:https://pan.baidu.com/s/1KpOKPEGiHYwKNFRqdSI2Kg 提取码:pz3i 天翼云盘:https://cloud.189.cn/t/3QzIzuNn6JJb (访问码:6uop) 蓝奏云: https://wwr.lanzoui.com/b02c6m9he 密码:d3gk 首先从flash里下载Adobe_Flash_Player_一剑全清_V4.7z,执行并重启。 在下载所需要的flash版本进行安装。懒人直接下载3合1安装包安装即可。(3in) 注意:新版本的浏览器不支持 Flash Player,目前支持使用Flash Player的有: 1、chromium内核88版本以下的浏览器(chrome v.88 以下) 2、Firefox 85版本以下的火狐浏览器 3、Safari 14版本以下的Safari浏览器
Read More ~

sngrep - 最好用的sip可视化抓包工具

教程链接:https://www.yuque.com/wangdd/opensips/sngrep#gbX9j centos安装sngrepcentos安装sngrep 编辑yum源 vim /etc/yum.repos.d/irontec.repo [irontec] name=Irontec RPMs repository baseurl=http://packages.irontec.com/centos/$releasever/$basearch/ 安装 rpm --import http://packages.irontec.com/public.key yum install -y sngrep 若出现报错 http://packages.irontec.com/centos/releasever/basearch/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" 常见问题 可以手动编辑上面的变量releasever和变量basearch 若不清楚怎么获取可以参考下面的命令 #centos #$releasever rpm -q --qf %{version} centos-release;echo #$basearch rpm -q --qf %{arch} centos-release;echo
Read More ~

teamspeak3 下载安装

teamspeak 3 是一款在国外非常火爆的语音软件,并且是一些大型比赛的官方使用软件。是的没听错,守望先锋的比赛的语音就是用这个软件的。 守望先锋联赛指定TeamSpeak作为官方语音平台 2019年12月16日,暴雪动视旗下《守望先锋联赛》宣布TeamSpeak作为官方语音平台。从2020年开始,暴雪将会在游戏中植入TeamSpeak系统,合作期为三年。 主要特点是没广告、延迟低,语音优化好。 对比YY来说它少了非常多的页面广告,对于低配电脑来说也不再有资源压力。 根据部分网上留言,YY在环境比较差的时候能达到100ms延迟,而ts3就不一样了,延迟是PC到服务器之间的延迟再一定程度上优化。例如我在广州的华为云上搭了个服务器,电脑到服务器延迟8ms,总体语音延迟在(8ms +- 0.4ms),enjoy it! 语音方面优化方面可以看文档去,懒得翻了,实际体验上在自由麦下,没说话的时候噪音会以非常高的频率被直接过滤掉,不会出现明明没说,但是一直呼呼响。然后能自定义快捷键 好了,怎么安装呢。 从国内百度一下,你会发现前4个只有一个是真官网。(https://www.teamspeak.com/zh-CN/) 当然你会发现你不一定能打开,能打开也不一定能下载,我这边已经下载好了一个版本,并且把一些我用的中文插件都打包好了,下载文档链接下面 https://www.lanzouw.com/b02c8gzti 密码:3lah 下载解压之后就是4个文件,先安装TeamSpeak3-Client-win64-3.5.6.exe 客户端,按一般软件一样安装, 需要注意的是 1、授权申明需要拉到最下面才能点同意。 2、如果提示是否需要安装 overwolf 记得勾上安装,这个是在游戏里显示谁说话的一个软件,特别好用,墙裂推荐。 3、 安装完成之后启动软件需要再同意一次授权申明 4、先跳过连接服务器 5、提示输入昵称的时候输入你自己想要的昵称(Nickname) 之后关闭软件,开始安装其他包,一个是中文界面,一个是中文语音提示包。 rpsoundboard1810_5d0667abeda4a.ts3_plugin 是播放任意文件,一般是整蛊或者bgm时用的,这里不安装。 重新打开的时候你就会发现是中文了,其他请自行摸索,服务器地址另外提供。 关于服务端的安装可以百度下安装方法,安装包在官网可以下载。
Read More ~

frp 内网穿透

前言: 公司专线即将到期,新办理的宽带又没有公网IP。这时候想到了内网穿透,这就不得不提到几年前被安利的frp,一看GitHub竟然已经5年了,网上估计大把教程了。 那么什么是frp呢。 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 中文文档请看:https://github.com/fatedier/frp/blob/dev/README_zh.md GitHub地址:https://github.com/fatedier/frp 搭建 首先我们要准备 公网IP服务器一台(必要),其他机器若干台(我管你多少台),虚拟机也可以。 接着下载与机器cpu架构对应的frp 接着我们在服务器的随便一个地方解压,这里我使用的华为云的机器所以下载的是frp_0.37.1_linux_arm64.tar.gz 服务端配置及启动 解压之后进目录修改服务端配置文件 frps.ini # 必要配置,初始化服务端连接端口 [common] bind_port = 6000 bind_udp_port = 6001 # 认证模式和秘钥 authentication_method = token authenticate_heartbeats = true authenticate_new_work_conns = false token = CPu2PS5teIdM #是否启用tcp复用,可以省略 tcp_mux = true # 允许开启的端口,可以限制在某个范围利于云平台开端口或其他管理 allow_ports = 20000-40000 # 日志,可以省略,省略之后直接打印在终端中。 log_file = ./frps.log log_level = info log_max_days = 3 disable_log_color = true 配置完成之后启动 ./frps -c frps.ini #frps服务端程序 # -c 加载配置文件 客户端连接和启动 frp releases包是包含服务端和客户端的,接着我手上是两台windows机器,所以按照x64 下载frp_0.37.1_windows_amd64.zip 解压之后,我们开始编辑客户端配置 编辑frpc.ini 文件 # 连接服务器,核心部分。每个客户端都需要配置 [common] server_addr = www.wspby.top server_port = 6000 token = CPu2PS5teIdM #这里一定要和服务端一致,否则报错。 # 日志,可以省略,省略之后直接打印在终端中。 log_file = ./frpc.log log_level = info log_max_days = 3 #是否启用tcp复用,可以省略 tcp_mux = true 启动命令 frpc.exe -c frpc.ini 开始创建连接,这里科普下可以使用的连接类型type(来自https://www.zhuguodong.com/?id=560) 代理类型 tcp和udp:就是将普通的tcp端口或者udp端口映射到公网上,相当于你的设备直接向公网暴露了一个tcp端口,任何设备都可以尝试连接这个端口。这里就会有很大的安全风险。 [pc_mstsc] type = tcp local_ip = 127.0.0.1 #这里疑似修改为其他地址并进行访问,这里不做测试 local_port = 3389 remote_port = 33999 之后在防火墙开下端口就可以提供给任何人访问了。 sftp:出于安全和防止攻击的考虑,frp提供了使用密钥验证的tcp,这就是frp的Secret TCP(stcp)模式。 xtcp:stcp是使用了服务器进行中转,如果出现大流量的话会出现卡顿,所以就有了xtcp模式。在xtcp模式下,两个客户端是直接相连略过了服务端进行通信,这样就不会受服务器带宽限制。 被连接端配置如下: [pc_stcp_mstsc] # stcp type = stcp sk = 12345678 local_ip = 127.0.0.1 local_port = 3389 #基本一致 [pc_xtcp_mstsc] # xtcp type = xtcp sk = 12345678 local_ip = 127.0.0.1 local_port = 3389 连接端配置如下: [mstsc_vister_stcp] type = stcp role = visitor #角色是访问者 sk = 12345678 bind_addr = 127.0.0.1 #可以随便写 bind_port = 33333 server_name = pc_stcp_mstsc #这里需要对应中括号内的服务名! [mstsc_vister_xtcp] type = xtcp role = visitor #角色是访问者 sk = 12345678 #需要与被连接端一致 bind_addr = 127.0.0.1 #可以随便写 bind_port = 44444 server_name = pc_xtcp_mstsc #这里需要对应中括号内的服务名! bind_addr可以随便写,在连接时地址为: %bind_addr%:%bind_port% 在正确配置和启动之后开始测试 测试成功。 参考链接: https://www.zhuguodong.com/?id=560 https://zhuanlan.zhihu.com/p/341551501 https://sspai.com/post/52523 还有其他忘了。。。
Read More ~