开机联网自动获取外网IP

目的:实现开机获取本机外网的Ip地址

本机基本信息:

操作系统: Arch Linux
使用了NetworkManager控制网络连接。

实现

  • Step 1:编写获取Ip的脚本如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
    while [ ture ]; do
    if ping -q -c 1 www.baidu.com > /dev/null; then
    curl ipinfo.io > /home/yongqi/Documents/host;
    break;
    else
    sleep 1m;
    fi
    done
  • 根据NetworkManager的特点将上述脚本放到/etc/NetworkManager/dispatcher.d 目录下,当网络连接上后(此时本机不一定能上网,所以脚本中有延迟),该目录下的脚本会自定执行。