en Python, à l'aide du module IPY, vous pouvez procéder comme suit:
>>> ip.iptype() 'PRIVATE'
3 Réponses :
Il semble que ce ne semble pas exactement mais inetaddress code> a des méthodes isxx () telles que: isanylocaladdress () code> et ISSITELOCALADDRESS () CODE> P>
Le issitelocaladdress () code> est celui que j'ai trouvé le plus utile pour déterminer des adresses IP privées.
ISSITELOCALADDRESS () CODE> Retours FALSE code> pour 127.0.0.1 i>, vous devez donc vérifier s'il est localhost avec isloopbackaddress () code> en outre.
codereview. Stackexchange.com/Questtions/65071/...
Si INETAddress ne " t Travaillez pour vous alors il devrait être assez facile de traduire après Code Python à Java:
IPv4ranges = {
'0': 'PUBLIC', # fall back
'00000000': 'PRIVATE', # 0/8
'00001010': 'PRIVATE', # 10/8
'01111111': 'PRIVATE', # 127.0/8
'1': 'PUBLIC', # fall back
'1010100111111110': 'PRIVATE', # 169.254/16
'101011000001': 'PRIVATE', # 172.16/12
'1100000010101000': 'PRIVATE', # 192.168/16
'111': 'RESERVED' # 224/3
}
def iptype(self):
if self._ipversion == 4:
iprange = IPv4ranges
elif self._ipversion == 6:
iprange = IPv6ranges
else:
raise ValueError("only IPv4 and IPv6 supported")
bits = self.strBin()
for i in xrange(len(bits), 0, -1):
if bits[:i] in iprange:
return iprange[bits[:i]]
return "unknown"
@Alexr Yup, dans la plupart des cas, ce n'est pas le cas. :) Je ne suis pas python ou IP Pro, je viens de googler le module que vous utilisiez à Python, j'ai trouvé la fonction que vous utilisiez et la place ici. :)
Je crois qu'Inet4Address.Iissitelocaladdress () Est-ce que vous voulez. Voici un exemple:
Est-ce que l'une des méthodes du Java.net.inetaddddress aide de classe?
codereview. Stackexchange.com/Questtions/65071/...
Jetez un coup d'œil à Stackoverflow.com/questions/9729378/...