Archivos por Etiqueta: ipv6

Java: Generating CIDR InetAddress

Una pequeña chuleta para generar una “NetMask” desde un CIDR en Java:

import java.net.InetAddress;

public static InetAddress getAddressByCIDR(final int bits, final boolean ipv6) {
	final int totalBits = (ipv6 ? 128 : 32);
	if (bits < 0 || bits > totalBits)
		throw new IllegalArgumentException("Illegal CIDR prefix");
	final byte[] bytes = new byte[totalBits >> 3];
	for (int offset = 0; offset < bits; offset++) {
		bytes[offset >> 3] |= (1 << (7 - (offset & 7)));
	}
	try {
		return InetAddress.getByAddress(bytes);
	} catch (UnknownHostException e) {
		throw new RuntimeException(e);
	}
}

Referencias:
CIDR

IPv6: How to disable

Aqui un chuletario de como deshabilitar el Stack IPv6 en diferentes sistemas (Windows, Linux y Java)

En Linux hay varios metodos diferentes:

1) Agregando al cmdline del kernel el parametro:

ipv6.disable=1

2) Usando el sysctl (proc):

net.ipv6.conf.all.disable_ipv6=1

3) Forzando el modprobe.conf:

alias net-pf-10 off
alias ipv6 off
install ipv6 /bin/true

En Windows 7 solo hay que cambiar una clave del registro:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters]
"DisabledComponents"=dword:000fffff

En Java se puede definir una System property para que use IPv4 de modo preferente:

-Djava.net.preferIPv4Stack=true         # por defecto es false
-Djava.net.preferIPv6Addresses=false    # opcional: por defecto false

Referencias:
Windows: KB-929852
Windows: How-To disable IPv6
Linux: ipv6 module options
Linux: ip-sysctl
Linux: man 5 modprobe.conf
Java: IPv6 guide

A %d blogueros les gusta esto: