乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

Linux关于日期时间显示输出

发表于 2020-09-18

1、输出当前年月日

1
2
echo $(date +%F)
2014-02-21

或者

1
2
echo $(date +\%Y-\%m-\%d)
2014-02-21

2、输出当前时间(时分)

1
2
echo $(date +%R)
12:45

3、输出当前时间(时分秒)

1
2
echo $(date +%T)
12:52:51

4、输出星期

1
2
echo $(date +%A)
星期五

5、组合输出日期时间

5.1输出年月日

1
2
3
4
5
echo $(date +%Y/%m/%d)
2014/02/21
%Y参数: 年
%m参数: 月
%d参数: 日

5.2输出时分秒

1
2
3
4
5
echo $(date +%H:%M:%S)
12:50:44
%H参数: 时
%M参数: 分
%S参数: 秒

5.3输出年月日时分秒

1
2
3
4
5
echo $(date +%F%n%T)
2014-02-21 12:56:46
%n参数: 空格
%F参数: 年月日
%T参数: 时分秒

或者

1
echo $(date +\%Y-\%m-\%d-%H:%M:%S)

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

如何创建Xposed模块工程进行代码hook

发表于 2020-09-15

快速搭建模块工程

  1. 第一步 使用Android Studio创建空工程
  2. 第二步 导入依赖
1
2
compileOnly 'de.robv.android.xposed:api:53'
compileOnly 'de.robv.android.xposed:api:53:sources'
  1. 在AndroidManifest.xml清单文件application节点下加入以下代码
1
2
3
4
5
6
7
8
9
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="Xposed模块初体验" />
<meta-data
android:name="xposedminversion"
android:value="53" />
  1. 创建Hook逻辑类,该类继承自IXposedHookLoadPackage,示例如下:
1
2
3
4
5
6
public class HookTest implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("HOOK初体验:" + lpparam.processName + ":" + lpparam.packageName);
}
}
  1. 在assets目录下创建xposed_init文件并将Hook逻辑类引用路径填入,比如:
1
com.example.test.HookTest
  1. 编译并运行至装有xposed容器app的设备中即可, 重启设备生效

注:以上操作成功的前提是你需要一台拥有root权限的手机或者模拟器,并已经安装了xposed安装器

搭建本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

apk反汇编工具apktool问题集锦

发表于 2020-09-15

Apktool的基本使用

解包指令:

1
apktool d [apk文件] -o [解包存放路径]

如果使用的是jar包,则:

1
java -jar apktool.jar d [apk文件] -o [解包存放路径]

打包指令:

1
2
3
apktool b [源码目录] -o [apk文件]
或者
java -jar apktool.jar b [源码目录] -o [apk文件]

签名指令:

1
jarsigner -verbose -keystore [签名文件] -signedjar [签名后的apk 可自定义文件名] [需要签名的apk]  [签名文件的别名]

温馨提示

由于apk在反编译后进行回编时容易出现各种异常情况, 建议解包后立马进行装包测试,以免白费功夫!

问题1 DexBackedDexFile$NotADexFile

apktool反编apk时报错:

1
org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 cd

提示很明显,就是非法Dex,这是因为apk里有加密过后的dex文件,比如有些apk的assets目录下有加密后的Dex文件,添加–only-main-classes参数即可

1
apktool d ~/tmp/test.apk -o /tmp/test --only-main-classes

apktool打包时找不到打包后的apk文件

新版的apktool需要加上 -o 参数, 否则只编译不输出apk 文件

1
apktool b ~/tmp/test -o /tmp/test.apk

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android Studio:如何使用Android Studio与夜神模拟器开发调试

发表于 2020-09-15

使用Android Studio与夜神模拟器开发调试:

(1)运行夜神模拟器,

(2)打开命令行窗口,

(3)打开到夜神安装目录(如cd D:\Program Files\NOX\Nox\bin),

(4)执行命令:nox_adb.exe connect 127.0.0.1:62001,连接模拟器,

(5)若Android Studio连接不上夜神,重启模拟器即可。

4、这时在Android Studio窗口上点击run ‘app’(或shift+F10)

会发现弹出的窗口如下所示:

点击OK即可在模拟器上运行app

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

python requests库添加自定义cookies的方法

发表于 2020-09-14

一般的情况使用requests.Session()方法就可以解决cookies问题,但是在途中添加cookie遇到了一些问题。

第一种:

1
2
session = requests.Session()
session.cookies['cookie'] = 'cookie-value'12

功能:可以添加cookie,不会清除原cookie
缺点:不能设置path,domain等参数

第二种:

1
2
session = requests.Session()
session.cookies.set('cookie-name', 'cookie-value', path='/', domain='.abc.com')12

功能:设置path、domain等参数。
缺点:清楚原来的cookies

第三种:

1
2
session = requests.Session()
requests.utils.add_dict_to_cookiejar(session.cookies, cookie_dict)12

功能:可以添加cookie,不会清除原cookie
缺点:不能设置path,domain等参数

第四种:

1
2
3
4
session = requests.Session()
c = requests.cookies.RequestsCookieJar()
c.set('cookie-name', 'cookie-value', path='/', domain='.abc.com')
session.cookies.update(c)1234

功能:既能添加cookies,还能添加path,domain等参数。

cookie的path和domain属性

  1. domain表示的是cookie所在的域,默认为请求的地址,如网址为www.test.com/test/test.aspx,那么domain默认为www.test.com。而跨域访问,如域A为t1.test.com,域B为t2.test.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.test.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.test.com。
  2. path表示cookie所在的目录,asp.net默认为/,就是根目录。在同一个服务器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个cookie1的path为/test/,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。
  3. 浏览器会将domain和path都相同的cookie保存在一个文件里,cookie间用*隔开。
  4. 含值键值对的cookie:以前一直用的是nam=value单键值对的cookie,一说到含多个子键值对的就蒙了。现在总算弄清楚了。含多个子键值对的cookie格式是name=key1=value1&key2=value2。可以理解为单键值对的值保存一个自定义的多键值字符串,其中的键值对分割符为&,当然可以自定义一个分隔符,但用asp.net获取时是以&为分割符。

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

如何检测获取到的代理ip是否为高匿ip

发表于 2020-09-14

方法一

通过第三方接口检测

1
2
url = "http://httpbin.org/ip"  # 如果返回的ip里面有本机ip,则证明不是匿名代理
url = "http://httpbin.org/get?show_env=1" # "origin"对应的value如果是你的本机ip,则不是匿名代理

示例:

1
2
3
4
5
# 访问http://httpbin.org/ip 返回

{
"origin": "117.136.0.213"
}

和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 访问http://httpbin.org/get?show_env=1 返回

{
"args": {
"show_env": "1"
},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"Alexatoolbar-Alx-Ns-Ph": "AlexaToolbar/alx-4.0.3",
"Host": "httpbin.org",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-5f5ebcfe-2047fe040ea2d1e594e5b6e0",
"X-Forwarded-For": "117.136.0.213",
"X-Forwarded-Port": "80",
"X-Forwarded-Proto": "http"
},
"origin": "117.136.0.213",
"url": "http://httpbin.org/get?show_env=1"
}

附上网站源码:https://github.com/postmanlabs/httpbin

方法二

利用某些禁止代理访问的网站进行代理访问测试,比如孔夫子旧书网

步骤:

第一步 先对孔夫子进行高频访问(不使用代理), 直到无法访问为止(说明本机ip已经被禁止)

第二步 换成代理进行访问 如果可以正常访问 则为高匿代理

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import requests
import time
from threading import Thread


def get_gao_ni_ip(ip, file_save):
url = "http://book.kongfz.com/175804/1038155437/"
headers = {
'Cookie': 'PHPSESSID=0d12c303a92043f13a3cc2c329e444f36b44ef71; shoppingCartSessionId=74c831996eb9a1009d79244d7d915040; kfz_uuid=f53edd56-8938-48af-a447-9a07bde47ffa; reciever_area=1006000000; Hm_lvt_bca7840de7b518b3c5e6c6d73ca2662c=1552367977; Hm_lvt_33be6c04e0febc7531a1315c9594b136=1552367977; kfz_trace=f53edd56-8938-48af-a447-9a07bde47ffa|10072231|834871367e51d410|-; acw_tc=65c86a0a15523697386136416e812159c1e7ce1072aea90b9eb27c93ee05cc; BIGipServerpool_nxtqzj=527099402.24615.0000; Hm_lpvt_bca7840de7b518b3c5e6c6d73ca2662c=1552371456; Hm_lpvt_33be6c04e0febc7531a1315c9594b136=1552371456',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
proxies = {
"http": "http://" + ip,
}
try:
resp = requests.get(url=url, headers=headers, proxies=proxies, timeout=2)
# print(resp.text)
if "胡适传论,上" \
"下。_胡明_孔夫子旧书网" in resp.text:
print("ip可用",ip)
file_save.write(ip + '\n')
else:
print("errer")
except:
pass


if __name__ == '__main__':
start_time = time.time()
# 储存可用的ip地址
file_save = open(r'D:\')

with open(r'D:\', 'r',
encoding='utf-8') as file_ips:
ips_list = file_ips.readlines()

thread_list = []
total_num = 0
for ip_one in set(ips_list):
# 前面携带http的
ip = ip_one.strip()
# 直接ip+port的
thred_ip = Thread(target=get_gao_ni_ip, args=[ip, file_save])
thread_list.append(thred_ip)
thred_ip.start()
total_num += 1
print(total_num, total_num)
# 为了是电脑CPU不至于很卡
time.sleep(0.005)
for i in thread_list:
i.join()
file_save.close()
end_time = time.time()
print((end_time - start_time), '秒')

方法三

利用百度搜索关键字 IP,出来的网站的结果,进行爬取,然后利用自己电脑本机ip和request请求响应回来的代理ip进行比较,如果不一样,说明请求的代理IP就是高匿的。

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

全球免费代理获取接口api

发表于 2020-09-14

免费代理IP库

警告

代理IP采集于网络,仅供个人学习使用。请勿用于非法途径,违者后果自负!

获取一个验证通过的代理IP

  • URL: https://ip.jiangxianli.com/api/proxy_ip
  • 响应数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"code":0,
"msg":"成功",
"data":{
"unique_id":"ad0611edba534fd2c39a36d77e383cfb",
"ip":"118.193.107.80",
"port":"80",
"ip_address":"北京市 北京市",
"anonymity":0,
"protocol":"http",
"isp":"电信",
"speed":375,
"validated_at":"2017-12-25 14:38:25",
"created_at":"2017-12-25 14:38:25",
"updated_at":"2017-12-25 14:38:25"
}
}

获取代理IP列表

  • URL: https://ip.jiangxianli.com/api/proxy_ips
  • 请求参数
参数名 数据类型 必传 说明 例子
page int N 第几页 1
country string N 所属国 中国,美国
isp string N ISP 电信,阿里云
order_by string N 排序字段 speed:响应速度,validated_at:最新校验时间 created_at:存活时间
order_rule string N 排序方向 DESC:降序 ASC:升序
  • 响应数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"code":0,
"msg":"成功",
"data":{
"current_page":1,
"data":[
{
"unique_id":"dd2aa4a97ab900ad5c7b679e445d9cde",
"ip":"119.167.153.50",
"port":"8118",
"ip_address":"山东省 青岛市",
"anonymity":0,
"protocol":"http",
"isp":"联通",
"speed":46,
"validated_at":"2017-12-25 15:11:05",
"created_at":"2017-12-25 15:11:05",
"updated_at":"2017-12-25 15:11:05"
},
{
"unique_id":"7468e4ee73bf2be35b36221231ab02d5",
"ip":"119.5.0.42",
"port":"22",
"ip_address":"四川省 南充市",
"anonymity":0,
"protocol":"http",
"isp":"联通",
"speed":127,
"validated_at":"2017-12-25 15:10:04",
"created_at":"2017-12-25 14:38:14",
"updated_at":"2017-12-25 15:10:04"
}
],
"last_page":1,
"per_page":15,
"to":8,
"total":8
}
}

访问频率限制

请注意访问频率以及防止无效页的数据获取。多次违规操作访问将被限制IP访问。如需解除IP请在修正操作后,ISSUE中申请解除限制。

详情参见:https://github.com/jiangxianli/ProxyIpLib

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

windows平台下一款强大的免费代理获取工具ProxyFire(烈火代理)

发表于 2020-09-14

简介

proxyfire是一个强大的在线代理收集和分类工具。它支持http、socks4、socks5、隧道和ssl代理验证。它可以将代理分为socks代理、超级匿名代理、一般匿名代理、透明代理、网关代理。它具有强大的论坛吸收功能、搜索引擎吸收功能、代理扫描功能。并对代理的查询国家、代理重复、智能删除代理水印、代理无序等功能进行了研究。默认设置可用于每天获取数千个新的代理列表

截图

本帖附件

点击下载

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

如何判断客户端是否使用了代理

发表于 2020-09-14

要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。

具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。

匿名级别可以参考下表来判断。

给出一个应用例子,可以挂上代理试试效果: http://ip.mixsec.org/

一、没有使用代理服务器的情况:
REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等)
HTTP_X_FORWARDED_FOR = 您的真实 IP
这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等)
HTTP_X_FORWARDED_FOR = 代理服务器 IP
隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP (补充:这个字段由代理服务器填充,有时会填充网关信息等)
HTTP_X_FORWARDED_FOR = 随机的 IP
告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies
REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示
完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

除此之外,可以通过proxy judges总 结其他一些可供参考的判定信息,一遍于在实践中加以利用。

最后写一个php例子,仅供大家参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if(!empty($_SERVER['HTTP_VIA']))  //使用了代理
{
if(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
//Anonymous Proxies 普通匿名代理服务器

​ //代理IP地址为 $_SERVER['REMOTE_ADDR']

}
else
{
//Transparent Proxies 透明代理服务器
//代理IP地址为 $_SERVER['REMOTE_ADDR']
//真实ip地址为 $_SERVER['HTTP_X_FORWARDED_FOR']
}
}
else //没有代理或者是高匿名代理
{
//真实ip地址为 $_SERVER['REMOTE_ADDR']
}

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

关于MySQL数据库基础备份

发表于 2020-09-11

mysqldump备份

img

备份命令

格式:mysqldump -u用户名 -p密码 数据库名 > 文件名.sql

例如:

1
mysqldump -uroot -ppassword  cmdb > /data/backup/cmdb.sql

备份压缩

导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩

格式:mysqldump --u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz

例如:

1
mysqldump  -uroot -ppassword  cmdb | gzip > /data/backup/cmdb.sql.gz

备份同个库多个表

格式:mysqldump -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql

例如 :

1
mysqldump -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql

同时备份多个库

格式:mysqldump -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:

1
mysqldump  -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql

备份实例上所有的数据库

格式:mysqldump -u用户名 -p密码 --all-databases > 文件名.sql

例如:

1
mysqldump -uroot -ppassword --all-databases > /data/backup/all_db.sql

备份数据出带删除数据库或者表的sql备份

格式:mysqldump -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql

例如:

1
mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql

备份数据库结构,不备份数据

格式:mysqldump -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:

1
mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…373839…50

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

491 日志
143 标签
RSS
© 2025 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%