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

2022-09-26 15:27:23 +08:00
 FrankAdler

比如这个地址 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
}
1247 次点击
所在节点    问与答
12 条回复
dogking2
2022-09-26 15:32:55 +08:00
python 中 urllib.parse.urlparse()可以解析
arch9999
2022-09-26 15:35:41 +08:00
LLaMA2
2022-09-26 15:39:21 +08:00
你的网址会遵守 scheme://host:port/path?query 这个格式,那么先://分割,一定取最后一段,接着:分割,一定去最前一段,没了,网址得到了,前提是你原始的网址是经过 url_encode 过的,要不 query 参数中出现了类似:// :等字符会瞎
IceBay
2022-09-26 15:47:07 +08:00
jifengg
2022-09-26 16:18:02 +08:00
感觉你自己的已经可以了,现在域名很少有 username 和 password 的,所以通用性几乎 100%了吧
fisherwei
2022-09-26 16:20:03 +08:00
自从 chrome 带头开始 copy 自动附加 schema:// 之后,这个事就变得很烦人
matzoh
2022-09-26 16:28:17 +08:00


utools ,一步到位插件
我是自己编写的插件
FrankAdler
2022-09-26 17:52:20 +08:00
@arch9999 这肯定没有直接 cmd+c 复制然后 cmd+v 去 ping 快啊,本质上我的出发点就是想不要这样复制😂
FrankAdler
2022-09-26 17:53:24 +08:00
@dogking2
@ye4tar
相当于是把我的简陋脚本换成更规范的解析了,本质上还是一样的
FrankAdler
2022-09-26 17:54:07 +08:00
@IceBay 飞浏览器环境用不上这个吧
FrankAdler
2022-09-26 17:54:55 +08:00
@matzoh 很强,不过我在用 raycast
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)'
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/883044

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX