@@ -52,27 +52,65 @@ rec {
5252 source = pkgs . writeText "upHook" ''
5353 INTERFACE=$1
5454 STATUS=$2
55+
56+ get_ip_info(){
57+ # 获取IPv4地址
58+ IPV4_ADDR=$(ip -4 addr show dev $INTERFACE 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n1)
59+
60+ # 获取IPv6地址(全局范围)
61+ IPV6_ADDR=$(ip -6 addr show dev $INTERFACE 2>/dev/null | grep -oP '(?<=inet6\s)[0-9a-f:]+' | grep -v '^fe80:' | head -n1)
62+
63+ # 获取公网IP(如果有网络连接)
64+ PUBLIC_IP=$(curl -s -4 ifconfig.co 2>/dev/null || curl -s -6 ifconfig.co 2>/dev/null || echo "N/A")
65+
66+ # 构建IP信息字符串
67+ IP_INFO=""
68+ if [ -n "$IPV4_ADDR" ]; then
69+ IP_INFO="IPv4: $IPV4_ADDR"
70+ fi
71+ if [ -n "$IPV6_ADDR" ]; then
72+ if [ -n "$IP_INFO" ]; then
73+ IP_INFO="$IP_INFO, IPv6: $IPV6_ADDR"
74+ else
75+ IP_INFO="IPv6: $IPV6_ADDR"
76+ fi
77+ fi
78+ if [ -n "$PUBLIC_IP" ] && [ "$PUBLIC_IP" != "N/A" ]; then
79+ IP_INFO="$IP_INFO, Public: $PUBLIC_IP"
80+ fi
81+
82+ echo "'' ${IP_INFO:-No IP addresses found}"
83+ }
84+
5585 notify_status(){
5686 alias_for_work=/etc/agenix/alias-for-work.bash
5787 if [ -f $alias_for_work ]; then
5888 . $alias_for_work
5989 else
6090 echo "No alias file found for work"
6191 fi
62- MSG="PC[r9000p2025][nixos] online(Device Interface: $DEVICE_IFACE, Connection: $CONNECTION_ID($CONNECTION_UUID), Status: $STATUS, Time: $(date +%Y-%m-%dT%H:%M:%S%Z))"
63- notify-send $MSG
64- ${ pkgs . ntfy-sh } /bin/ntfy publish $ntfy_topic $MSG
92+
93+ # 获取IP信息
94+ IP_INFO=$(get_ip_info)
95+
96+ MSG="PC[r9000p2025][nixos-wsl] online(Device Interface: $DEVICE_IFACE, Connection: $CONNECTION_ID($CONNECTION_UUID), Status: $STATUS, IP: $IP_INFO, Time: $(date +%Y-%m-%dT%H:%M:%S%Z))"
97+ notify-send "Network Status" "$MSG"
98+ ${ pkgs . ntfy-sh } /bin/ntfy publish $ntfy_topic "$MSG"
6599 }
100+
66101 anonymous(){
67102 ~/.config/*/scripts/tp_link_script http://192.168.0.1 111111 "$(cat /sys/class/net/wlp0s20f3/address)" "匿名主机" 0
68103 }
69104
70105 case "$STATUS" in
71106 up)
107+ # 等待一下确保IP地址已经分配
108+ sleep 2
72109 notify_status
73110 anonymous
74111 ;;
75112 vpn-up)
113+ sleep 2
76114 notify_status
77115 anonymous
78116 ;;
0 commit comments