IPs Classfull
Publicado por Rafael Iguatemy (última atualização em 11/05/2012)
[ Hits: 6.415 ]
Homepage: http://rafaeliguatemy.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 .
Futuramente será postado a versão classless.
#!/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)
Shell reverso completo - servidor
Peer-to-peer nós para processamento em multipontos
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Fiz uma pergunta no fórum mas não consigo localizar (19)
Quais os códigos mais dificeis que vcs sabem fazer? (8)
Pfsense inacessivel após um periodo de tempo (1)
Não consigo instalar distro antiga no virtualbox nem direto no hd (9)









