⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressutils.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   AddressUtils.java

package org.gudy.azureus2.core3.util;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.core.instancemanager.AZInstance;
import com.aelitis.azureus.core.instancemanager.AZInstanceManager;
import com.aelitis.azureus.core.proxy.AEProxyAddressMapper;
import com.aelitis.azureus.core.proxy.AEProxyFactory;
import java.io.PrintStream;
import java.net.*;
import java.util.*;

// Referenced classes of package org.gudy.azureus2.core3.util:
//			Debug, HostNameToIPResolver

public class AddressUtils
{

	public static final byte LAN_LOCAL_MAYBE = 0;
	public static final byte LAN_LOCAL_YES = 1;
	public static final byte LAN_LOCAL_NO = 2;
	private static AZInstanceManager instance_manager;
	private static Map host_map = null;

	public AddressUtils()
	{
	}

	public static URL adjustURL(URL url)
	{
		url = AEProxyFactory.getAddressMapper().internalise(url);
		if (host_map != null)
		{
			String rewrite = (String)host_map.get(url.getHost());
			if (rewrite != null)
			{
				String str = url.toExternalForm();
				try
				{
					int pos = str.indexOf("//") + 2;
					int pos2 = str.indexOf("/", pos);
					String host_bit = str.substring(pos, pos2);
					int pos3 = host_bit.indexOf(':');
					String port_bit;
					if (pos3 == -1)
						port_bit = "";
					else
						port_bit = host_bit.substring(pos3);
					String new_str = (new StringBuilder()).append(str.substring(0, pos)).append(rewrite).append(port_bit).append(str.substring(pos2)).toString();
					url = new URL(new_str);
				}
				catch (Throwable e)
				{
					Debug.printStackTrace(e);
				}
			}
		}
		return url;
	}

	public static synchronized void addHostRedirect(String from_host, String to_host)
	{
		System.out.println((new StringBuilder()).append("AddressUtils::addHostRedirect - ").append(from_host).append(" -> ").append(to_host).toString());
		Map new_map;
		if (host_map == null)
			new_map = new HashMap();
		else
			new_map = new HashMap(host_map);
		new_map.put(from_host, to_host);
		host_map = new_map;
	}

	public static InetSocketAddress adjustTCPAddress(InetSocketAddress address, boolean ext_to_lan)
	{
		return adjustAddress(address, ext_to_lan, 1);
	}

	public static InetSocketAddress adjustUDPAddress(InetSocketAddress address, boolean ext_to_lan)
	{
		return adjustAddress(address, ext_to_lan, 2);
	}

	public static InetSocketAddress adjustDHTAddress(InetSocketAddress address, boolean ext_to_lan)
	{
		return adjustAddress(address, ext_to_lan, 3);
	}

	private static InetSocketAddress adjustAddress(InetSocketAddress address, boolean ext_to_lan, int port_type)
	{
		if (instance_manager == null)
			try
			{
				instance_manager = AzureusCoreFactory.getSingleton().getInstanceManager();
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}
		if (instance_manager == null || !instance_manager.isInitialized())
			return address;
		InetSocketAddress adjusted_address;
		if (ext_to_lan)
			adjusted_address = instance_manager.getLANAddress(address, port_type);
		else
			adjusted_address = instance_manager.getExternalAddress(address, port_type);
		if (adjusted_address == null)
			adjusted_address = address;
		return adjusted_address;
	}

	public static List getLANAddresses(String address)
	{
		List result;
		result = new ArrayList();
		result.add(address);
		InetAddress ad;
		ad = InetAddress.getByName(address);
		if (isLANLocalAddress(address) == 2)
			break MISSING_BLOCK_LABEL_190;
		if (instance_manager == null)
			try
			{
				instance_manager = AzureusCoreFactory.getSingleton().getInstanceManager();
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}
		if (instance_manager == null || !instance_manager.isInitialized())
			return result;
		try
		{
			AZInstance instances[] = instance_manager.getOtherInstances();
			for (int i = 0; i < instances.length; i++)
			{
				AZInstance instance = instances[i];
				List addresses = instance.getInternalAddresses();
				if (addresses.contains(ad))
				{
					for (int j = 0; j < addresses.size(); j++)
					{
						InetAddress ia = (InetAddress)addresses.get(j);
						String str = ia.getHostAddress();
						if (!result.contains(str))
							result.add(str);
					}

				}
			}

		}
		catch (Throwable e) { }
		return result;
	}

	public static byte isLANLocalAddress(InetSocketAddress socket_address)
	{
		InetAddress address = socket_address.getAddress();
		return isLANLocalAddress(address);
	}

	public static byte isLANLocalAddress(InetAddress address)
	{
		if (address == null)
			return 2;
		if (instance_manager == null && AzureusCoreFactory.isCoreAvailable())
			try
			{
				instance_manager = AzureusCoreFactory.getSingleton().getInstanceManager();
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}
		if (instance_manager == null || !instance_manager.isInitialized())
			return 0;
		else
			return ((byte)(instance_manager.isLANAddress(address) ? 1 : 2));
	}

	public static byte isLANLocalAddress(String address)
	{
		byte is_lan_local = 0;
		try
		{
			is_lan_local = isLANLocalAddress(HostNameToIPResolver.syncResolve(address));
		}
		catch (Throwable t)
		{
			t.printStackTrace();
		}
		return is_lan_local;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -