IPs Classfull

Publicado por Rafael Iguatemy (última atualização em 11/05/2012)

[ Hits: 5.929 ]

Homepage: http://rafaeliguatemy.com.br

Download ipsv1.py




Este script recupera um ip digitado e sua másacara em notação "/x" e retorna seu endereço de rede,  broadcast, total de hosts disponíveis, classe e tipo .
Futuramente será postado a versão classless.  

  



Esconder código-fonte

#!/usr/bin/python
#-*-coding:iso-8859-1 -*-


########################################################################
########################################################################
###  Script: IPs.py                                                                                                                                ###
###  Versão: 1.0     Data:08/05/2010                                                                                                     ###
###  Autor: Rafael Iguatemy dos Santos - rafael.dsantos@bol.com.br                                                        ###
###------------------------------------------------------------------------------------------------------------------------###
### Este script recupera um ip digitado e sua másacara em notação "/x" e retorna seu endereço de rede,    ###
### broadcast, total de hosts disponíveis, classe e tipo                                                                             ###                       ########################################################################
########################################################################


def verifica_ip(ip):
   '''Verifica se o ip e valido e separa os octetos
   '''
   oct1,oct2,oct3,oct4 = "","","",""
   ips = []
   for i in range(len(ip)):
      if ip[i] != '.':
         oct1 += ip[i]
      else:
         ipr1 = ip[i+1:]
         break
   for j in range(len(ipr1)):
      if ipr1[j] != '.':
         oct2 += ipr1[j]
      else:
         ipr2 = ipr1[j+1:]
         break
   for w in range(len(ipr2)):
      if ipr2[w] != '.':
         oct3 += ipr2[w]
      else:
         oct4 = ipr2[w+1:]
         break
   if int(oct1) == 0 or int(oct1)>255 or int(oct2)>255 or int(oct3)>255 or int(oct1)>255 or len(ip)>15 or ip.count('.')!=3:
      print "ip incorreto"
   else:
      ips.append(oct1)
      ips.append(oct2)
      ips.append(oct3)
      ips.append(oct4)
      return ips
      
def mascara(ip, mascara):
   '''Esta função verifica a classe, tipo(Privado ou Público), endereço de rede, broadcast, mascara e quantidade de hosts disponíveis
   '''
   # Esta Variavel recupera a lista dos octetos
   gera_ip = verifica_ip(ip)
   # Este bloco verifica a classe IP
   if int(gera_ip[0]) < 128:      
      classe = 'Classe A'
   elif  int(gera_ip[0]) < 192:
      classe = 'Classe B'
   elif int(gera_ip[0]) < 224:
      classe = 'Classe C'
   elif int(gera_ip[0]) < 240:
      classe = 'Multicast'
   elif int(gera_ip[0]) < 256:
      classe = 'Reservados'
   else:
      classe = 'Inexistente'
      
   # Bloco informa se o IP é Público ou privado
   if (int(gera_ip[0]) == 10 and int(gera_ip[1]) in range(255)) or (int(gera_ip[0])==172 and int(gera_ip[1]) in range(16,32)) or (int(gera_ip[0])==192 and int(gera_ip[1]) == 68):
      tipo = ' Ip : Privado'
   else:
      tipo = ' IP : Publico'
      
   #bloco Informa endereço de rede, brosdcast e máscara
   if mascara == '8':
      endred = gera_ip[0]+".0.0.0"
      endbrd = gera_ip[0]+".255.255.255"
      print tipo
      print classe
      print 'Endereco de Rede : %s' % (endred)
      print 'Endereco de Broadcast : %s' % (endbrd)
      print 'Máscara : 255.0.0.0'
      print 'Total de Hosts disponíveis : %d ' % ((2**(32 - int(mascara)))-2)
   elif mascara == '16':
      print tipo
      print classe
      endred = gera_ip[0]+"."+gera_ip[1]+".0.0"
      endbrd = gera_ip[0]+"."+gera_ip[1]+".255.255"
      print 'Endereco de Rede : %s' % (endred)
      print 'Endereco de Broadcast : %s' % (endbrd)
      print 'Máscara : 255.255.0.0'
      print 'Total de Hosts disponíveis : %d ' % ((2**(32 - int(mascara)))-2)
   elif mascara == '24':
      endred = gera_ip[0]+"."+gera_ip[1]+"."+gera_ip[2]+".0"
      endbrd = gera_ip[0]+"."+gera_ip[1]+"."+gera_ip[2]+".255"
      print tipo
      print classe
      print 'Endereco de Rede : %s' % (endred)
      print 'Endereco de Broadcast : %s' % (endbrd)
      print 'Máscara : 255.255.255.0'
      print 'Total de Hosts disponíveis : %d ' % ((2**(32 - int(mascara)))-2)
   else :
      print 'Esta versão os ips são classfull!!'
      
#bloco principal   
ip = raw_input("Entre com o ip: ")
masc = raw_input("Entre com a máscara de rede (Notação /x : Somente o numero {8,16,24}) :")
mascara(ip,masc)

Scripts recomendados

Simple wireless scanner

Importar múltiplos hosts ZABBIX

Validação de IP

verifySite - um verificador de sites

Envio de comandos por ssh sem troca de chaves a múltiplos servidores


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts