Permitir URLs completos começando com http, https ou www em ping

1

Muitas vezes tenho o problema de ter um URL e de querer fazer ping no domínio desse endereço.

Existe uma opção para permitir que o ping use somente a parte do domínio de um URL que é dado como argumento?

    
por rubo77 08.03.2018 / 11:26

2 respostas

1

Você pode fazer todas essas transformações no bash, com :

pingd() (
  domain=$1

  # allow 'http' or 'www' to match any upper- or lower-case versions
  # (bash version 4.4-alpha and later)
  shopt -s nocasematch

  # strip any leading http(s)
  domain=${domain/#http:\/\/}
  domain=${domain/#https:\/\/}

  # strip any leading user:pass@
  domain=${domain/#*:*@/}

  # strip the trailing slash onwards
  domain=${domain/%\/*/}

  # strip any trailing port
  domain=${domain/%:*/}

  # strip any remaining leading www
  domain=${domain/#www./}

  ping "$domain"
)

Exemplos (com echo ping em vez de apenas ping , para demonstrar):

$ pingd 'http://user:[email protected]:80/some/path/url?data&and#hash'
ping example.com
$ pingd 'http://www.stackexchange.com'
ping stackexchange.com
$ pingd 'http://www.stackexchange.com/help'
ping stackexchange.com
$ pingd 'https://www.stackexchange.com'
ping stackexchange.com
$ pingd 'https://unix.stackexchange.com'
ping unix.stackexchange.com
$ pingd 'https://unix.stackexchange.com/'
ping unix.stackexchange.com
$ pingd 'https://unix.stackexchange.com/questions/428989/allow-full-urls-starting-with-http-https-or-www-in-ping'
ping unix.stackexchange.com
$ pingd 'www.example.com'
ping example.com
    
por 09.03.2018 / 17:39
1

Uma solução rápida para obter a parte do domínio sem "http: //" seria definir browser.urlbar.trimURLs to false no about:config do Firefox, para que você possa copiar com mais facilidade apenas a parte do domínio de um URL. / p>

Mas você pode adicionar uma função pingd como essa ao seu ~/.bashrc :

function pingd {
      ping $(echo "$1" | sed -e "s/[^/]*\/\/\([^@]*@\)\?\([^:/]*\).*//" | sed "s/^www\.//")
}

funciona com:

pingd "http://user:[email protected]:80/some/path/url?data&and#hash"

PING example.com
...

Se o URL não contiver & nem ! , também funciona sem aspas

    
por 08.03.2018 / 11:29

Tags