+ Responder ao Tópico



  1. #1
    Su6mund0
    Ola amigos, estou desenvolvendo uma ferramenta em java que tem como principal finalidade tornar o iptables bem amigável.
    Estou precisando capturar ip,gateway!

    Existe um comando que possa me retornar apenas o numero do ip e gateway?

  2. #2
    Avenger
    Você quer uma função java prá isso, ou quer um comando de shell script mesmo?..

    Bem, se for uma função java, você está um pouco off-topic, e eu não vou saber te responder, mas se for o comando, dá prá você fazer isso aqui ó:

    Capturar o IP configurado numa dada interface, usando iproute2:

    Código :
    #!/bin/bash
    interface=eth0
    iproute2=/sbin/ip
    ipaddr="$("${iproute2}" addr list dev "${interface}" | grep "inet " | head -n 1 | cut -b10- | cut -f1 -d/ 2>&1)"
    echo "${ipaddr}"

    Usando o ifconfig

    Código :
    #!/bin/bash
    interface=eth0
    ifconfig=/sbin/ifconfig
    ipaddr="$("${ifconfig}" "${interface}" | grep "inet addr" | head -n 1 | cut -f2 -d":" | cut -f1 -d" ")"
    echo "${ipaddr}"

    Hora do gateway (vai pegar a primeira rota padrão listada na tabela de roteamento principal):

    iproute2
    Código :
    #!/bin/bash
    iproute2=/sbin/ip
    gateway="$("${iproute2}" route list | grep default | head -n 1 | cut -f3 -d" ")"
    echo "${gateway}"

    route não sei porque, mas o route sempre coloca a(s) rota(s) default na ultima linha... então prá diminuir código, a gente pode pegar simplesmente a última rota listada com um tail -n 1; de qualquer forma, vou explicitar o caminho mais longo e mais seguro (além disso, se não tiver rota default ia aparecer um ip-lixo se usássemos só a ultima linha):
    Código :
    #!/bin/bash
    route=/sbin/route
    gateway="$("${route}" -n | grep " UG " | head -n 1 | cut -b17- | cut -f1 -d" ")"
    echo "${gateway}"

    Espero que seja mais ou menos isso que precisa!..

    Ah! Aviso aos navegantes: shell script é lento prá cacete! Se precisar fazer algo assim, prá larga escala de uso, tente ou fazer um script prá gerar isso uma vez só durante o boot da máquina, ou então um script em perl ou mesmo php (é, php não é útil só prá gerar páginas não, as funções deles são ótimas prá fazer um outputzinho prá outros programas).






Tópicos Similares

  1. Proxy Mostrar Ip do Usuario no Squid
    Por douglassantos no fórum Servidores de Rede
    Respostas: 6
    Último Post: 10-09-2013, 12:15
  2. Respostas: 0
    Último Post: 14-05-2013, 09:15
  3. Troca de ip do usuario via comando
    Por josenilto no fórum Redes
    Respostas: 1
    Último Post: 30-11-2012, 23:19
  4. Access.log não gera os IP'S dos Usuários !!!!
    Por Benito no fórum Servidores de Rede
    Respostas: 5
    Último Post: 31-08-2005, 08:24
  5. Respostas: 10
    Último Post: 28-04-2003, 12:45

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L