Script / comando para copiar o endereço IP interno diretamente na área de transferência

1

Atualmente, estou usando um alias para ifconfig como iip="ifconfig | grep 'broadcast\|wlan\|eth0'" , que simplesmente mostra as linhas que contêm o endereço IP para o adaptador de rede sem fio e ethernet. Toda vez que preciso de IP interno / privado, executo esse alias simples. Mas então eu tenho que copiar o endereço IP manualmente.

Existe algum comando que copie o endereço IP interno / privado diretamente na área de transferência para uso (o comando reconheceria um endereço IP que está no formato *.*.*.* em que se o valor de qualquer * for 255 (netmask ou endereço de broadcast) então não copie esse padrão, senão copie o padrão na área de transferência)

Editar : estou falando do buffer que contém o valor copiado na memória

    
por GypsyCosmonaut 05.05.2017 / 02:16

2 respostas

1

Use uma ferramenta como sed ou awk para extrair a parte da saída desejada. Em seguida, use xsel ( pbcopy no macOS) para copiá-lo para a área de transferência.

Observe que o nome da interface não está na mesma linha do endereço IP, portanto, a filtragem precisa levar várias linhas em consideração.

ifconfig | awk '
    /^[^ ]/ {interface = $1}
    $1=="inet" && interface ~ /^(broadcast|wlan|eth0)$/ {sub(/^addr:/, "", $2); print $2}
' | xsel -b
    
por 06.05.2017 / 00:50
0

Você pode colocar a saída em um arquivo e usar a ferramenta de linha de comando xsel para compartilhar o terminal e a área de transferência da GUI. Você pode configurá-lo em um script que fará o trabalho para você.

link

    
por 05.05.2017 / 05:25