importar informações do /services

1. importar informações do /services

Douglas Andrade
douglasandr

(usa Debian)

Enviado em 22/03/2021 - 19:23h

Boa Noite meu Caros!!
A fim de estudos, estou desenvolvendo em linguagem C uma aplicação de Dos para protocolos, e gostaria de importar informações do arquivo /etc/services, porem ão estou conseguindo êxito na tentativa, quero separar o serviço e a porta em 2 arquivos de textos, de modo que um arquivo compare com o outro...
Por exemplo:
" Se argumento1(serviço digitado) for == lista_de_serviços.txt(exemplo FTP), então argumeento1=lista_de_portas.txt(21)....

Mas estou com problema em obter êxito na própria extração da lista...
Cheguei a esse comando teste:
cat /etc/services | grep "/" | grep -v "/MIT" | grep -v "# Services added for the" | cut -d "/" -f 1 | grep -v "#"

Ele retorna um texto limpo, porem nao consigo separar portas, dos serviços, em 2 arquivos de textos distintos...
Caso alguém consiga me auxiliar ficarei muito feliz...
Agradeço a atenção de todos....


  


2. Re: importar informações do /services

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/03/2021 - 01:05h

Não entendi o que o comando em pipeline mostrado acima tem a ver com o programa em C que você quer fazer.

Se você quer ter cada coluna da figura em um arquivo diferente, ou roda duas vezes as respectivas variações do comando que você mostrou, ou não vai poder usar apenas cut e grep, mas vai ter de subir de nível, usando algo que permita usar mais de um destino de saída, possivelmente uma linguagem de script, tal como awk, Perl ou o próprio shell, ou mesmo o seu próprio programa em C.

Quando você fala em "aplicação de Dos", refere-se a denial of service? Lembre-se que a comunidade C/C++ do VOL não coaduna práticas antiéticas.

E se você está fazendo um programa em C que precisa consultar /etc/services, por que não usa funções prontas, tais como getservent(), getservbyname() e getservbyport(), ou mesmo getaddrinfo()?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)