White Paper: Coleta de endereços MAC pela Receita Federal. Vinícius da Silveira Serafim* vinicius@serafim.eti.br



Documentos relacionados
ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Entendendo como funciona o NAT

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Arquitetura de Rede de Computadores

QUAL O PROCEDIMENTO PARA CONFIGURAR AS IMPRESSORAS DE REDE BROTHER EM UM SISTEMA DEC TCP / IP para VMS (UCX) Procedimento

Capítulo 5 Métodos de Defesa

Aplicação Prática de Lua para Web

Manual de Administração

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Como Gerar documento em PDF com várias Imagens

MANUAL DE ORIENTAÇÃO CESSAÇÃO DE USO DE EQUIPAMENTO EMISSOR DE CUPOM FISCAL-ECF

APOSTILA DE REDES DE COMPUTADORES PARTE - I I

MANUAL DE CONFIGURAÇÃO

TCEnet e TCELogin Manual Técnico

Manual Captura S_Line

Portal Sindical. Manual Operacional Empresas/Escritórios

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

SISTEMAS OPERACIONAIS

Repetidor / Access Point Wi Fi N Mbps WN9255. Guia Rápido de Instalação

Atualizaça o do Maker

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Manual SAGe Versão 1.2 (a partir da versão )

Um pouco do Java. Prof. Eduardo

UNIVERSIDADE FEDERAL DE PELOTAS

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

TCEnet. Manual Técnico. Responsável Operacional das Entidades

Conceitos de relação de confiança

Redes de Computadores II. Professor Airton Ribeiro de Sousa

Ajuda das opções Fiery 1.3 (cliente)

Veja abaixo um exemplo de um endereço IP de 32 bits:

Orientação a Objetos

Manual Integra S_Line

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Persistência de Classes em Tabelas de Banco de Dados

AirPort Express: configurações iniciais

OneDrive: saiba como usar a nuvem da Microsoft

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

AS VERSÕES DESCRIÇÃO DAS FUNÇÕES

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Como posso usar o HP Easy Printer Care através de USB ou conexão paralela?

Manual de utilização do módulo NSE METH-8RL/Exp

Firewall. Qual a utilidade em instalar um firewall pessoal?

Certificado Digital. Manual do Usuário

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Manual Operacional do SISCOAF

Web Design Aula 11: Site na Web

Manual Administrador - Mídia System

Considerações a serem feitas antes da implantação.

Auxiliar de instalação (Português Brasileiro) Primeiros passos

A licença é vinculada ao HD (Hard Disk) da máquina, esta não podendo ser substituída em caso de formatação ou perda de qualquer espécie do hardware.

9. Quais as características a tecnologia de conexão à Internet denominada ADSL A) Conexão permanente, custo variável, linha telefônica liberada e

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

Guia de instalação Command WorkStation 5.5 com o Fiery Extended Applications 4.1

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

TeamViewer 9 Manual Wake-on-LAN

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Procedimentos para Reinstalação do Sisloc

Sumário INSTALAÇÃO DO SIATRON CONDOMÍNIO ATIVAÇÃO DA LICENÇA PRESTADORES DE SERVIÇOS PARÂMETROS DO SISTEMA

Informática - Prof. Frank Mattos

1969 ARPANet - Advanced Research Projects Agency Network

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

atube Catcher versão 3.8 Manual de instalação do software atube Catcher

INTRODUÇÃO: 1 - Conectando na sua conta

Técnicas e ferramentas de ataque. Natiel Cazarotto Chiavegatti

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Oficina de Inclusão Tecnológica Windows Live Skydrive

Google Drive: Acesse e organize seus arquivos

Ajuda das opções Fiery 1.3 (servidor)

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Administração do Windows Server 2003

Lógica de Programação

Manual de Instalação do Agente Citsmart

Data: 22 de junho de

Atualizaça o do Playlist Digital

Guia do usuário do PrintMe Mobile 3.0

Manual do Visualizador NF e KEY BEST

Orientação a Objetos

Google Drive. Passos. Configurando o Google Drive

5 Mecanismo de seleção de componentes

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Engenharia de Software III

DHCP. Administração de Redes de Computadores Prof.ª Juliana Camilo Ângelo, Bryan, Carlos, Vinícius

Passo a Passo da instalação da VPN

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Transcrição:

White Paper: Coleta de endereços MAC pela Receita Federal Vinícius da Silveira Serafim* vinicius@serafim.eti.br Resumo: no dia 17 de abril de 2015, uma notícia vinculada na Internet informou que 80 mil contribuintes foram intimados pela Receita Federal do Brasil por suspeita de terem fraudado declarações do IR. Iágaro Jung, subsecretário de Fiscalização da Receita Federal, apontou o trabalho do Laboratório de Lavagem de Dinheiro da Receita Federal pela potencialização de identificação de operações irregulares. Esse laboratório desenvolve ferramentas para esse fim e uma das ferramentas utilizadas envolve a coleta de endereços IP e endereços MAC dos computadores utilizados na gravação das declarações. Neste artigo foram analisadas as formas pelas quais esses dados são obtidos, bem como a utilidade dos mesmos na identificação de computadores, usuários e contribuintes. Algumas possibilidades de cruzamento de dados foram apontadas e algumas considerações que dão margem para uma discussão jurídica foram também realizadas. 1 Introdução No dia 17 de abril de 2015, em matéria publicada pela Agência Brasil 1, cerca de 80 mil contribuintes foram identificados pela Receita Federal do Brasil como suspeitos de fraudar declarações do IR (Imposto de Renda). Ainda conforme a matéria, o subsecretário de Fiscalização da Receita Federal, Iágaro Jung, apontou esse resultado como sendo devido à atuação do Laboratório de Lavagem de Dinheiro da Receita. Essa equipe pesquisa e desenvolve ferramentas para detectar possíveis fraudes nas declarações do IR e, entre as diversas informações coletadas por essas ferramentas, duas ganharam destaque na matéria citada: endereço IP (Internet Protocol) e endereço MAC (Medium Access Control). A intenção da Receita Federal, também segundo a matéria citada, é identificar os computadores de escritórios de contabilidade responsáveis por irregularidades nas declarações dos clientes. Partindo deste ponto, é realizada uma breve análise neste artigo sobre a relevância da coleta do endereço IP e do endereço MAC, bem como sobre 1 http://agenciabrasil.ebc.com.br/economia/noticia/2015-04/receita-intima-80-mil-contribuintessuspeitos-de-infracao-em-declaracoes-do 30 de abril de 2015 1

a forma como essa coleta é realizada. Ao final, são levantados alguns aspectos que merecem uma atenciosa avaliação jurídica. 2 Endereço IP O endereço IP identifica o "local" na Internet a partir do qual foi enviada uma declaração. Porém o IP não identifica necessariamente um computador único na Internet, uma vez que é bastante comum o compartilhamento de um único endereço entre diversos computadores de uma mesma rede. Sendo assim, seria possível identificar a pessoa (física ou jurídica) responsável pelo uso de um determinado IP em um determinado período, mas não o computador específico utilizado para a criação da declaração. Outro ponto relevante a ser considerado é que, de acordo com a forma como o acesso à Internet é realizado, o endereço IP de uma pessoa pode mudar frequentemente ou pode ser fixo. O primeiro caso é certamente o mais frequente, tornando mais difícil a identificação da pessoa responsável pelo uso do endereço IP. Nesse caso, a Receita teria que contar com a cooperação do provedor de acesso à Internet para saber quem usava o endereço em uma determinada janela de tempo. Assim como há os endereços IP utilizados na Internet (chamados de IPs válidos) há também endereços para serem utilizados especificamente em redes internas (IPs inválidos) 2. Estes últimos podem de fato identificar de forma única um computador, dentro de uma rede específica, de forma análoga ao número de uma casa em uma rua específica de uma cidade. Apenas com um IP inválido, sem saber qual a rede, a Receita teria o mesmo problema de identificar uma casa sabendo apenas o número da mesma e não conhecendo o nome da rua e mesmo o nome da cidade. 2.1 Como a coleta é feita Quando dois computadores se comunicam através de uma rede é necessário que um saiba o endereço do outro ou a comunicação simplesmente não seria possível. Dessa forma, é trivial para um software servidor armazenar em seus registros de acesso os endereços IP dos clientes que nele conectaram e solicitaram ou enviaram informações. De fato, diversos softwares servidores têm esse como um comportamento padrão (default). No caso dos endereços IP válidos, a coleta é fácil de ser feita e pode acontecer até mesmo sem que a Receita Federal tenha a intenção de realizá-la, torna-se assim perfeitamente possível saber a partir de qual endereço IP válido uma determinada declaração foi enviada. Em se tratando de endereços IP inválidos, ou de uso exclusivamente interno, a coleta não se dá de forma tão automática pois esses endereços não são visíveis na Internet. Nem por isso 2 RFC1918 disponível em http://www.rfc-editor.org/info/rfc1918 30 de abril de 2015 2

a coleta seria impossibilitada, podendo ser realizada de forma semelhante à utilizada para a coleta de endereços MAC pela Receita Federal, explicada a seguir. 3 Endereço MAC Diferentemente de um endereço IP, que pode ser válido ou inválido na Internet, um endereço MAC é único no mundo, apesar do mesmo nunca passar de uma rede para outra. Ele é único pois a sua atribuição é controlada por uma organização, a IEEE-SA (Institute of Electrical and Electronics Engineers - Standards Association) 3. E o fato de nunca passar de uma rede para outra, faz com que seu uso fique limitado à rede local onde se encontra o computador em uso e, portanto, jamais a Receita Federal receberia essa informação de forma automática. O endereço MAC é atribuído não ao computador em si, mas sim as suas interfaces de rede (wireless ou não). Cada interface possui seu próprio e único endereço MAC, atribuído no momento de sua fabricação e por essa razão é chamado também de endereço físico. Cabe lembrar aqui que diversos dispositivos como smartphones e tablets são de fato computadores e possuem também suas interfaces de rede, portanto possuem endereços MAC únicos. Como os endereços são atribuídos pela IEEE-SA aos fabricantes de equipamentos, é possível saber, também através do endereço MAC, qual é a marca do equipamento (ex. Dell, Apple, Samsung, Intel, ) Um computador pode receber um novo endereço MAC ou perder um endereço MAC a medida que interfaces de rede são adicionadas ou removidas. Esses procedimentos, embora não muito frequentes, acontecem com maior facilidade em computadores desktop, sendo mais raros em notebooks e excepcionais em smartphones e tablets. Existem formas relativamente fáceis (para alguém com conhecimento técnico) de alterar os endereços MAC de uma interface de rede, mas isso muito raramente é necessário. Essas características tornam o endereço MAC mais efetivo do que o endereço IP no que diz respeito a identificar um computador (ou dispositivo) específico, inclusive sua marca, embora não seja a prova de falhas. 3.1 Como a coleta é feita Conforme já explanado, ao contrário de um IP válido, o MAC não é enviado de forma automática para a Receita Federal. Assim, para que a receita obtenha essa informação ela tem que recorrer a outros meios. Esses meios envolvem acesso direto à rede local onde se encontra o computador a ser identificado ou, melhor ainda, ao próprio computador. 3 http://standards.ieee.org/develop/regauth/oui/public.html 30 de abril de 2015 3

Uma vez que, para realizar a declaração do IR, o contribuinte deve realizar o download e a execução de um programa desenvolvido pela Receita Federal em um computador, a mesma obtém o acesso necessário para coletar ativamente o endereço MAC e mesmo outras informações como endereços IP inválidos (ou internos) assim como outros números de série únicos existentes no computador. A partir dessas constatações, foram realizadas análises dos próprios programas fornecidos pela Receita Federal para verificar se de fato essa informação era coletada, pois a receita não informa o usuário sobre isso, e, se coletada, como é coletada. 3.1.1 Análise dos programas A primeira ação realizada foi abrir um arquivo gerado pelo programa de declaração do imposto de renda pessoa física (IRPF) 2015 (extensão.dec) e verificar se nele constava o endereço MAC de alguma interface de rede do computador onde o mesmo foi gerado. Um dos endereços MAC do computador, no formato 00:00:04:c3:de:124, foi encontrado logo nas primeiras linhas do arquivo.dec, porém sem os dois pontos (:) e com todas as letras maiúsculas, seguido de 8 zeros: 000004C3DE1200000000. Uma vez constatado o fato de que a coleta do endereço MAC é realizada, passou-se para a análise do programa de declaração do IRPF 2015. O programa é desenvolvido em linguagem JAVA e distribuído pela Receita em seu site 5. Após a instalação é possível encontrar o arquivo principal do programa, cujo nome é irpf.jar, em diretório que varia de acordo com o sistema operacional utilizado: Windows: C:\Arquivos de Programas RFB/IRPF2015/irpf.jar Mac OS X: /Applications/ProgramasRFB/IRPF2015/IRPF2015.app/Contents/Java/irpf.jar Ubuntu Linux: $HOME/ProgramasRFB/IRPF2015/irpf.jar O arquivo jar (Java Archive) é simplesmente um arquivo compactado contendo as classes Java, arquivos de imagem, arquivos XML e outros arquivos que são necessários para o programa. Esse arquivo pode ser facilmente descompactado e seu conteúdo inspecionado. Entre os diversos arquivos contidos no arquivo irpf.jar, existe um cujo nome é mapeamentotxt.xml. Nas linhas 9 e 10 desse arquivo lê-se: A partir desse arquivo o componente de gravação / restauração Txt sabe quais registros o arquivo txt a ser gravado / restaurado vai ter e quais campos cada registro vai ter. 4 5 endereço MAC fictício. http://www.receita.fazenda.gov.br 30 de abril de 2015 4

Este arquivo portanto diz respeito ao formato do arquivo.dec gerado pelo programa. As diversas linhas seguintes, apontam nomes de campos e descrição dos mesmos. Abaixo são destacadas as mais relevantes para a análise. 56 <Campo Nome="NM_NOME" Descricao="Nome do contribuinte" [ ]... 66 <Campo Nome="NOME_SO" Descricao="Nome do Sistema Operacional" [ ] 67 <Campo Nome="VERSAO_SO" Descricao="Numero da versao do Sistema Operacional(SO)" [ ] 68 <Campo Nome="VERSAO_JVM" Descricao="Numero da versao do Java" [ ]... 118 <Campo Nome="ENDERECO_MAC" Descricao="Endereço físico da estação [ ] A linha 56 serve apenas como um exemplo de uma informação que se espera que esteja na declaração: o nome do contribuinte. Já as linhas 66, 67 e 68 apontam para o fato de que são enviados também, como parte da declaração, o nome e versão do sistema operacional bem como a versão da plataforma Java instalada. E, por fim, na linha 118 está a indicação do armazenamento do endereço MAC do computador no qual o declaração foi gravada. Para descobrir como o endereço MAC está sendo coletado, foi realizada a descompilação 6 das classes java do programa de declaração do IRPF 2015 (contidas no arquivo irpf.jar) e foram procuradas algumas palavras-chave que poderiam estar relacionadas à obtenção do endereço MAC, como: network, interface e address. Foram encontradas duas funções relevantes, denominadas neste artigo de fa() e fb(). Ambas listadas integralmente nos anexos 1 e 2, respectivamente. A função fb() é utilizada pela função fa() e tem por objetivo determinar qual é o endereço IP do computador que está efetivamente sendo utilizado para o acesso à Internet. A forma como isso é feito é curiosa. Essa função contém uma lista de endereços de sites: String[] arrayofstring= www.receita.fazenda.gov.br", "www.google.com.br", "www.uol.com.br", "www.globo.com", "www.terra.com.br", "www.estadao.com.br" ; Como pode ser notado, além do site da própria Receita, os sites do Google, UOL, Globo, Terra e do Estadão fazem parte desta lista. O que a função fb() faz é tentar se conectar em cada um desses sites na ordem em que eles aparecem na listagem e, em cada tentativa, verificar qual o endereço IP do computador (IP local) utilizado para a conexão. Assim que o endereço é obtido, as tentativas de conexão cessam e a função fb() retorna o resultado para a função fa(). O endereço IP identificado pela fb() será, em geral, um endereço inválido, ou seja, utilizado apenas em redes internas. Essa informação é utilizada pela função fa() e então é descartada, não sendo adicionada à declaração. Já a função fa() é a que efetivamente obtém o endereço MAC. Inicialmente ela chama a fb() para obter o endereço IP da interface de rede conectada à Internet. Em seguida, se a fb() retornou 6 Através desse processo é possível obter acesso ao código fonte de um programa. 30 de abril de 2015 5

um endereço IP, a fa() tenta obter o endereço MAC da interface de rede que possui o endereço IP encontrado. Caso contrário, a fa() obtém o endereço MAC da primeira interface de rede que ela encontrar no sistema. As duas funções são bem simples e fáceis de serem compreendidas por alguém com conhecimento em programação de computadores. Além do programa IRPF2015, foram também analisados: IRPF2014, IRPF2013, IRPF2012, IRPF2011, IRPF2010 e IRPF2009. Foi verificado que desde 2010 os programas de declaração do IRPF apresentavam as mesmas características de captura de endereços MAC encontradas no IRPF2015. 4 Utilidade dos endereços IP e MAC para a Receita A Receita Federal pode facilmente obter o endereço IP válido de quem enviou uma determinada declaração. Porém, conforme foi descrito na seção 2, a utilidade dessa informação é relativa pois, por exemplo, um determinado endereço IP pode em um momento estar sendo utilizado por uma pessoa e no momento seguinte por uma outra diferente. Seria então necessária a cooperação dos provedores de acesso à Internet para que a Receita pudesse saber quais endereços foram utilizados por quais pessoas e em quais períodos. Já o endereço MAC é fixo e, a não ser que o usuário tenha algum conhecimento técnico mais profundo, raramente será mudado. Esse endereço não permite que a Receita saiba onde se encontra o computador na Internet, mas identifica de forma única este computador. Qual é então a utilidade do endereço MAC? Uma vez que a Receita identifique uma fraude em uma declaração do IR, ela pode procurar outras declarações que contenham o mesmo endereço MAC, ou seja, que foram feitas em um mesmo computador e, provavelmente, por uma mesma pessoa. A partir daí a Receita pode verificar mais cuidadosamente essas outras declarações encontradas. Ainda, a partir dos dados dos contribuintes a Receita pode obter a localização física (estado, cidade, rua número, ), mais ou menos precisa, dos endereços MAC. E então, pode até mesmo determinar quais (quantos) computadores estão em uma mesma residência, sala comercial, prédio, cidade ou estado. Além de ser possível outras deduções relacionadas às marcas dos equipamentos. 5 Conclusão O endereço MAC pode revelar muito mais informações do que o endereço IP. Com ele é possível identificar de forma única, em termos mundiais, um computador ou outro equipamento qualquer que possua uma interface de rede. Essa informação não é uma informação fiscal e vem sendo capturada desde 2010 pela Receita Federal sem o consentimento e ciência do dono do 30 de abril de 2015 6

equipamento e do contribuinte. Vale destacar que ambos não são necessariamente a mesma pessoa. Não há nenhuma menção à coleta dessa informação seja no programa, política de privacidade ou qualquer outro documento disponibilizado pela Receita em seu site. Assim como os endereços MAC são capturados, outras informações também poderiam ser facilmente capturadas e enviadas à Receita Federal como, por exemplo: listagem de arquivos de declaração (.DEC) existentes no disco do computador, nome de programas em execução, nome do usuário no sistema operacional, dados de licença do sistema operacional, etc. Certamente há espaço aqui para um estudo técnico-jurídico, principalmente no que diz respeito ao anteprojeto da lei para proteção de dados pessoais. Não só no que diz respeito ao caso específico analisado mas à diversas outras iniciativas, principalmente privadas, que também fazem uso de dados coletados sem o devido consentimento dos usuários. (*) Vinícius da Silveira Serafim é graduado em Ciência da Computação pela Universidade de Passo Fundo (1999) e Mestre em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (2002). Trabalha como consultor em segurança da informação desde 2001 e atua como professor de cursos de extensão, graduação e pósgraduação desde 1999. 30 de abril de 2015 7

Anexo 1 - Função fa() public static String fa() String str = ""; Object localobject = fb(); try if ((localobject!= null) && ((localobject = NetworkInterface.getByInetAddress((InetAddress)localObject))!= null) && ((localobject = ((NetworkInterface)localObject).getHardwareAddress())!= null) && (localobject.length == 6)) str = String.format("%1$02x%2$02x%3$02x%4$02x%5$02x%6$02x", new Object[] Byte.valueOf(localObject[0]), Byte.valueOf(localObject[1]), Byte.valueOf(localObject[2]), Byte.valueOf(localObject[3]), Byte.valueOf(localObject[4]), Byte.valueOf(localObject[5]) ).touppercase(); if (str.isempty()) Enumeration localenumeration = NetworkInterface.getNetworkInterfaces(); while (localenumeration.hasmoreelements()) if (((localobject = (NetworkInterface)localEnumeration.nextElement())!= null) && ((localobject = ((NetworkInterface)localObject).getHardwareAddress())!= null) && (localobject.length == 6)) str = String.format("%1$02x%2$02x%3$02x%4$02x%5$02x%6$02x", new Object[] Byte.valueOf(localObject[0]), Byte.valueOf(localObject[1]), Byte.valueOf(localObject[2]), Byte.valueOf(localObject[3]), Byte.valueOf(localObject[4]), Byte.valueOf(localObject[5]) ).touppercase(); break; catch (SocketException localsocketexception) (localobject = localsocketexception).printstacktrace(system.err); return str; 30 de abril de 2015 8

Anexo 2 - Função fb() private static InetAddress fb() String[] arrayofstring = "www.receita.fazenda.gov.br", "www.google.com.br", "www.uol.com.br", "www.globo.com", "www.terra.com.br", "www.estadao.com.br" ; int i = 0; int j = 0; InetAddress localinetaddress2 = null; while ((i == 0) && (j < 6)) try InetAddress localinetaddress1 = InetAddress.getByName(arrayOfString[(j++)]); Object localobject1; int k = (localobject1 = new ServerSocket(0)).getLocalPort(); ((ServerSocket)localObject1).close(); k = k; (localobject1 = new DatagramSocket(k)).connect(localInetAddress1, k); localinetaddress2 = ((DatagramSocket)localObject1).getLocalAddress(); i = 1; catch (UnknownHostException localunknownhostexception) (localobject2 = localunknownhostexception).printstacktrace(system.err); catch (SocketException localsocketexception) (localobject2 = localsocketexception).printstacktrace(system.err); catch (IOException localioexception) Object localobject2; (localobject2 = localioexception).printstacktrace(system.err); return localinetaddress2; 30 de abril de 2015 9