Obtendo o IP público (Internet) usando o Ruby

Publicado por Daniel Vinciguerra (última atualização em 24/08/2016)

[ Hits: 3.200 ]

Homepage: http://bivee.com.br

Download public-ip.rb




Algumas vezes nós precisamos saber qual é o nosso endereço de IP público (que é diferente do de rede) e uma das formas de fazer isso é acessando serviços online que mostram seu IP.

Este script segue o mesmo modelo do script que fiz a tempos atrás mas desta vez em Ruby.

PRÉ-REQUISITOS:

- ruby
- módulo open-uri

REFERÊNCIAS:

http://ruby-doc.org/stdlib-2.2.0/libdoc/open-uri/rdoc/OpenURI.html

EXECUTANDO:

Para executar o script:

$ ruby public-ip.rb

  



Esconder código-fonte

#!/usr/bin/env ruby
# 2016 (c) Daniel Vinciguerra

require 'open-uri'

# sites fonte
source_list = %w[ http://ipinfo.io/ip http://checkip.dyndns.org ];

source_list.each do |site|
  open site do |html|
    # parseando o ip
    /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/.match(html.readlines.to_s);
    next unless $1

    # retorna o ip
    puts $1; exit
  end
end


Scripts recomendados

Sistema de simulação de fabricantes de carros

Exemplo de utilização de métodos em Ruby

Postmon - Consumindo uma API com Ruby

Tabuada de um número

Módulo DBI para acesso a dados no Ruby


  

Comentários
[1] Comentário enviado por conectadohost em 24/08/2016 - 19:34h

Olá,
eu uso de boa o ifconfig
ifconfig | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | sed -n -e 3p
trocando o 3p pelo numero da posição da sua placa, no meu caso a placa que eu uso fica na terceira posição.
também é possível das seguintes formas.
curl -s http://checkip.dyndns.org | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}'
curl -s http://whatismijnip.nl |cut -d " " -f 5


---> As vezes Para Não Me Estressar Prefiro Não Comentar
---> Márcio M M <---

[2] Comentário enviado por dvinciguerra em 24/08/2016 - 19:50h

Olá conectadohost,

O intuito com a publicação dos scripts, na minha humilde opinião, é servir como forma introdutória e trazer com assuntos diferentes e práticos de serem testados novas funcionalidades de uma plataforma/linguagem/tecnologia (neste script, por exemplo, eu utilizei open-uri para obter dados remotos e regex para parsear em Ruby).

Eu sei que poderia utilizar o curl|wget para obter esses dados (e jamais indicaria essa implementação para produção) mas tive que escrever em Ruby porque foi a categoria que escolhi para publicar! :)

Abs,



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts