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 ~
shell echo字体带颜色
echo -e "\e[1;47mxxxxx\e[0m"
Read More ~
号码归属地库
号码归属地库
数据库的号码归属地是18年之前的,因为出现很多号码新号码不识是的问题,所以需要更新一遍。
在此之前我想了下流程,主要是分以下几步。
获取号码和区域代码(区号)
制作区号代码字典(区号,省份,城市)
根据区号补充号码的省份和城市(号码,区号,身份,城市)
拼接插库语句
获取号码和区域代码
这里我采用很久之前看到的GitHub上一位大佬的库,使用PHP拉取3大运营商的号码和区号,我直接取用大佬拉好的数据。
[url]: https://github.com/chenxinbin/china-mobile-location
#数据格式如下
1330010 010
1330011 010
1330018 021
制作区号代码字典
根据我从之前数据库拉出来的区号信息制作字典。
数据格式如下,并保存至txt文本中
00852 香港 香港
010 北京 北京
020 广东 广州
具体方法如下,让python逐行读取文本内容,分割文本之后存入list,然后再依次存入两个字典中。
#初始化参数
province = {} #创建空字典省份
city = {} #创建空字典城市
a_dist = open('./dist.txt', 'r', encoding='UTF-8') #读取文件,使用utf-8格式使用
#读取,分割,制作字典
for line in a_dist:
lines = line.replace('\n', '') #可能存在换行符,影响结果,这里置换为空
split = lines.split('\t') #以制表符为分割点,分割
province[split[0]] = split[1] #添加区号查询的省份字典
city[split[0]] = split[2] #添加区号查询的城市字典
a_dist.close()
根据区号补充号码的省份和城市
根据上面两个步骤得出的数据可以生成一份,号码-区号-省份-城市 的对应数据。
a_10000 = ('./10000.txt', 'r', encoding='UTF-8')
for number in a_10000:
lines = line.replace('\n', '')
split = lines.split(' ') #同理可得对应list
#写入txt文件
try:
w_txt = open('./dianxin.sql', 'a', encoding='UTF-8') # 'a' 为追加模式,请确保文本为空
w_txt.write('号码:%s,区号:%s,省份:%s,城市:%s' % (split[0], split[1], province[split[1]], city[a[1]]))
excrpt:
print(split[0]) #打印号码
print(split[1]) #打印区号
f_name.close()
拼接插库语句
根据写入文件的方法自行修改
a_10000 = ('./10000.sql', 'r', encoding='UTF-8')
for number in a_10000:
lines = line.replace('\n', '')
split = lines.split(' ') #同理可得对应list
#写入txt文件
try:
w_txt = open('./dianxin.sql', 'a', encoding='UTF-8') # 'a' 为追加模式,请确保文本为空
w_txt.write('INSERT into splitresplitNumber (Number,splitresplitNumber,Province,City) VsplitLUES (\'%s\',\'%s\',\'%s\',\'%s\');\n' % (split[0], split[1], province[split[1]], city[split[1]]))
excrpt:
print(split[0]) #打印号码
print(split[1]) #打印区号
f_name.close()
接着执行sql文件,就能愉快的添加了。
原创文章转载请留言
初学方法,比较费时费力。欢迎吐槽~
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 ~
nginx配置location [=|~|~*|^~] /uri/ { … }用法
转载自:https://www.cnblogs.com/xiangzhong/p/11355252.html @大漠孤烟直
Nginx(轻量级高并发服务器Nginx)同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务
nginx location语法
= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
~ 为区分大小写匹配(可用正则表达式)
!~为区分大小写不匹配
~* 为不区分大小写匹配(可用正则表达式)
!~*为不区分大小写不匹配
^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
示例
=====
location = / {
# 只匹配 / 查询。
}
location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
}
location ^~ /p_w_picpaths/ {
# 匹配任何已 /p_w_picpaths/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
}
location ~*.(gif|jpg|jpeg)$ {
# 匹配任何已 gif、jpg 或 jpeg 结尾的请求。
}
location ~*.(gif|jpg|swf)$ {
valid_referers none blocked start.igrow.cn sta.igrow.cn;
if ($invalid_referer) {
#防盗链
rewrite ^/ http://$host/logo.png;
}
}
Read More ~