V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
FrankAdler
V2EX  ›  问与答

拿到一个网址想要 ping 域名,大家是怎么简化手动提取域名这个过程的

  •  
  •   FrankAdler · 2022-09-26 15:27:23 +08:00 · 1429 次点击
    这是一个创建于 787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如这个地址 https://www.google.com/search?q=nginx 是从浏览器复制的,想要在终端里 ping ,还要自己选取一段复制,或者粘贴到终端,再删掉部分,如果 url 很长。。。

    我现在是写了个小脚本,放到环境变量 bashrc/zshrc 里面,类似 alias ,然后直接 ping http://... 大家有更好的方法吗

    ping() {
        host=$1
        if [[ $host == http* ]] || [[ $host == https* ]];then
            host=$(echo $host | awk -F '/' '{print $3}' | awk -F ':' '{print $1}')
        fi
        /sbin/ping $host
    }
    
    第 1 条附言  ·  2022-09-26 17:56:28 +08:00
    我举的浏览器例子只是其中一个,现实情况下 url 可能是从其他途径拿到的
    12 条回复    2022-09-27 07:59:03 +08:00
    dogking2
        1
    dogking2  
       2022-09-26 15:32:55 +08:00
    python 中 urllib.parse.urlparse()可以解析
    arch9999
        2
    arch9999  
       2022-09-26 15:35:41 +08:00   ❤️ 2
    LLaMA2
        3
    LLaMA2  
       2022-09-26 15:39:21 +08:00
    你的网址会遵守 scheme://host:port/path?query 这个格式,那么先://分割,一定取最后一段,接着:分割,一定去最前一段,没了,网址得到了,前提是你原始的网址是经过 url_encode 过的,要不 query 参数中出现了类似:// :等字符会瞎
    IceBay
        4
    IceBay  
       2022-09-26 15:47:07 +08:00
    jifengg
        5
    jifengg  
       2022-09-26 16:18:02 +08:00
    感觉你自己的已经可以了,现在域名很少有 username 和 password 的,所以通用性几乎 100%了吧
    fisherwei
        6
    fisherwei  
       2022-09-26 16:20:03 +08:00   ❤️ 1
    自从 chrome 带头开始 copy 自动附加 schema:// 之后,这个事就变得很烦人
    matzoh
        7
    matzoh  
       2022-09-26 16:28:17 +08:00


    utools ,一步到位插件
    我是自己编写的插件
    FrankAdler
        8
    FrankAdler  
    OP
       2022-09-26 17:52:20 +08:00
    @arch9999 这肯定没有直接 cmd+c 复制然后 cmd+v 去 ping 快啊,本质上我的出发点就是想不要这样复制😂
    FrankAdler
        9
    FrankAdler  
    OP
       2022-09-26 17:53:24 +08:00
    @dogking2
    @ye4tar
    相当于是把我的简陋脚本换成更规范的解析了,本质上还是一样的
    FrankAdler
        10
    FrankAdler  
    OP
       2022-09-26 17:54:07 +08:00
    @IceBay 飞浏览器环境用不上这个吧
    FrankAdler
        11
    FrankAdler  
    OP
       2022-09-26 17:54:55 +08:00
    @matzoh 很强,不过我在用 raycast
    LindsayZhou
        12
    LindsayZhou  
       2022-09-27 07:59:03 +08:00
    无聊写一个:
    ```
    echo "https://www.baidu.com" | python -c 'import os;from urllib.parse import urlparse;os.system("ping "+urlparse(input()).hostname)'
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1323 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.