IPs Classfull
Publicado por Rafael Iguatemy (última atualização em 11/05/2012)
[ Hits: 6.399 ]
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)
B.S.A.N.S. - Break Security - Automated Network Scanner [PARTE 1]
Nenhum comentário foi encontrado.
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
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Tem como instalar o Untapped no Linux? (0)
Podem me chamar de 1mbecil :) (3)
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (3)
Servidor de DNS BIND Ubuntu server (0)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)









