Replies: 3 comments 3 replies
-
|
必须设置。不过可以使用callback变通设置 |
Beta Was this translation helpful? Give feedback.
3 replies
-
|
我设置的通知软件是gotify,如果设置成 callback的话,每隔5复制就会发一次消息,并不是改变后才发,如果要通过callback实现,需要自己写对应的后端代码,太麻烦,后面直接改成用sh脚本检测ip变化,配合1panel计划任务来实现, #!/bin/bash
# 输出当前时间
echo "脚本开始执行时间"
echo "$(date)"
echo ""
# 定义IP记录文件路径
IP_RECORD_FILE="/root/IP记录"
# 读取当前记录的IP地址
if [ -f "$IP_RECORD_FILE" ]; then
# 从文件中读取IPV4, IPV6, 和记录时间
recorded_ipv4=$(grep '^IPV4=' "$IP_RECORD_FILE" | cut -d'=' -f2)
recorded_ipv6=$(grep '^IPV6=' "$IP_RECORD_FILE" | cut -d'=' -f2)
else
recorded_ipv4="未设置"
recorded_ipv6="未设置"
fi
# 获取本机的IPv4地址并匹配192.168网段的第一个IP
current_ipv4=$(hostname -I | grep -oP '192\.168\.\d{1,3}\.\d{1,3}' | head -n 1)
echo "记录的 IPV4 地址为: $recorded_ipv4"
echo "本机IPv4地址为: ${current_ipv4:-未找到}"
# 比较两者
if [ "$recorded_ipv4" == "$current_ipv4" ]; then
echo "本机IPV4地址未改变"
else
# 更新记录文件中的IPV4
recorded_ipv4="$current_ipv4"
echo "本机IPV4地址更新为: $current_ipv4"
update_file=true
fi
echo ""
# 获取本机的IPv6地址并匹配特定格式的第一个IP
current_ipv6=$(ip -6 addr show scope global | grep -oP '240e:335.*?fe62:c2c' | head -n 1)
echo "记录的 IPV6 地址为: $recorded_ipv6"
echo "本机IPv6地址为: ${current_ipv6:-未找到}"
# 比较两者
if [ "$recorded_ipv6" == "$current_ipv6" ]; then
echo "本机IPV6地址未改变"
else
# 更新记录文件中的IPV6
recorded_ipv6="$current_ipv6"
echo "本机IPV6地址更新为: $current_ipv6"
update_file=true
fi
echo ""
# 如果有IP地址发生改变
if [ "$update_file" = true ]; then
# 添加记录时间
current_time=$(date '+%Y-%m-%d %H:%M:%S')
# 重新写入整个文件
cat > "$IP_RECORD_FILE" <<EOF
IPV4=$recorded_ipv4
IPV6=$recorded_ipv6
记录时间=$current_time
EOF
# 构建POST消息内容,包含实际的换行符
message=$(printf 'title=File IP改变&message=当前IPV4\n%s\nIPV6\n%s\n1Panel&priority=5' "$current_ipv4" "$current_ipv6")
# 向指定URL发送POST消息
response=$(curl -s -w "%{http_code}" -X POST -d "$message" http://192.168.13.3:1037/message?token=AZOL107SHms1-Y1 -o /dev/null)
echo "发送POST消息后的状态码为:$response"
else
echo "IP地址没有变化,不更新文件。"
fi
# 输出脚本结束时间
echo ""
echo "脚本执行完毕时间"
echo "$(date)" |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
我设置的通知软件是gotify,如果设置成 callback的话,每隔5复制就会发一次消息,并不是改变后才发,如果要通过callback实现,需要自己写对应的后端代码,太麻烦,后面直接改成用sh脚本检测ip变化,配合1panel计划任务来实现,
脚本内容
```bash
#!/bin/bash
# 输出当前时间
echo "脚本开始执行时间"
echo "$(date)"
echo ""
# 定义IP记录文件路径
IP_RECORD_FILE="/root/IP记录"
# 读取当前记录的IP地址
if [ -f "$IP_RECORD_FILE" ]; then
# 从文件中读取IPV4, IPV6, 和记录时间
recorded_ipv4=$(grep '^IPV4=' "$IP_RECORD_FILE" | cut -d'=' -f2)
recorded_ipv6=$(grep '^IPV6=' "$IP_RECORD_FILE" | cut -d'=' -f2)
else
recorded_ipv4="未设置"
recorded_ipv6="未设置"
fi
# 获取本机的IPv4地址并匹配192.168网段的第一个IP
current_ipv4=$(hostname -I | grep -oP '192\.168\.\d{1,3}\.\d{1,3}' | head -n 1)
echo "记录的 IPV4 地址为: $recorded_ipv4"
echo "本机IPv4地址为: ${current_ipv4:-未找到}"
# 比较两者
if [ "$recorded_ipv4" == "$current_ipv4" ]; then
echo "本机IPV4地址未改变"
else
# 更新记录文件中的IPV4
recorded_ipv4="$current_ipv4"
echo "本机IPV4地址更新为: $current_ipv4"
update_file=true
fi
echo ""
# 获取本机的IPv6地址并匹配特定格式的第一个IP
current_ipv6=$(ip -6 addr show scope global | grep -oP '240e:335.*?fe62:c2c' | head -n 1)
echo "记录的 IPV6 地址为: $recorded_ipv6"
echo "本机IPv6地址为: ${current_ipv6:-未找到}"
# 比较两者
if [ "$recorded_ipv6" == "$current_ipv6" ]; then
echo "本机IPV6地址未改变"
else
# 更新记录文件中的IPV6
recorded_ipv6="$current_ipv6"
echo "本机IPV6地址更新为: $current_ipv6"
update_file=true
fi
echo ""
# 如果有IP地址发生改变
if [ "$update_file" = true ]; then
# 添加记录时间
current_time=$(date '+%Y-%m-%d %H:%M:%S')
# 重新写入整个文件
cat > "$IP_RECORD_FILE" <<EOF
IPV4=$recorded_ipv4
IPV6=$recorded_ipv6
记录时间=$current_time
EOF
# 构建POST消息内容,包含实际的换行符
message=$(printf 'title=File IP改变&message=当前IPV4\n%s\nIPV6\n%s\n1Panel&priority=5' "$current_ipv4" "$current_ipv6")
# 向指定URL发送POST消息
response=$(curl -s -w "%{http_code}" -X POST -d "$message" http://192.168.13.3:1037/message?token=AZOL107SHms1-Y1 -o /dev/null)
echo "发送POST消息后的状态码为:$response"
else
echo "IP地址没有变化,不更新文件。"
fi
# 输出脚本结束时间
echo ""
echo "脚本执行完毕时间"
echo "$(date)"
```
At 2025-01-16 16:00:31, "daimg2013" ***@***.***> wrote:
@Firfr 请教一下,你是如何设置的?如题,不设置解析域名,只通过Webhook发送消息,总是提示错误
Snipaste_2025-01-16_15-58-41.png (view on web)
Snipaste_2025-01-16_15-58-56.png (view on web)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
我不想设置域名解析,只想在设备的ipv4或v6地址改变后,向指定的Webhook发送消息,可以实现吗
Beta Was this translation helpful? Give feedback.
All reactions