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

📄 address.java

📁 检测nat类型的jstun的程序,双击即可.然后可在log.txt读取信息.
💻 JAVA
字号:
/* * This file is part of JSTUN.  *  * Copyright (c) 2005 Thomas King <king@t-king.de> - All rights * reserved. *  * This software is licensed under either the GNU Public License (GPL), * or the Apache 2.0 license. Copies of both license agreements are * included in this distribution. */package de.javawi.jstun.util;import java.util.*;import java.net.*;public class Address {	int firstOctet;	int secondOctet;	int thirdOctet;	int fourthOctet;		public Address(int firstOctet, int secondOctet, int thirdOctet, int fourthOctet) throws UtilityException {		if ((firstOctet < 0) || (firstOctet > 255) || (secondOctet < 0) || (secondOctet > 255) || (thirdOctet < 0) || (thirdOctet > 255) || (fourthOctet < 0) || (fourthOctet > 255)) {			throw new UtilityException("Address is malformed.");		}		this.firstOctet = firstOctet;		this.secondOctet = secondOctet;		this.thirdOctet = thirdOctet;		this.fourthOctet = fourthOctet;	}		public Address(String address) throws UtilityException {		StringTokenizer st = new StringTokenizer(address, ".");		if (st.countTokens() != 4) {			throw new UtilityException("4 octets in address string are required.");		}		int i = 0;		while (st.hasMoreTokens()) {			int temp = Integer.parseInt(st.nextToken());			if ((temp < 0) || (temp > 255)) {				throw new UtilityException("Address is in incorrect format.");			}			switch (i) {			case 0: firstOctet = temp; ++i; break;			case 1: secondOctet = temp; ++i; break;			case 2: thirdOctet = temp; ++i; break;			case 3: fourthOctet = temp; ++i; break;			}		}	}		public Address(byte[] address) throws UtilityException {		if (address.length < 4) {			throw new UtilityException("4 bytes are required.");		}		firstOctet = Utility.OneByteToInteger(address[0]);		secondOctet = Utility.OneByteToInteger(address[1]);		thirdOctet = Utility.OneByteToInteger(address[2]);		fourthOctet = Utility.OneByteToInteger(address[3]);	}		public String toString() {		return new String(firstOctet + "." + secondOctet + "." + thirdOctet + "." + fourthOctet);	}		public byte[] getBytes() throws UtilityException {		byte[] result = new byte[4];		result[0] = Utility.IntegerToOneByte(firstOctet);		result[1] = Utility.IntegerToOneByte(secondOctet);		result[2] = Utility.IntegerToOneByte(thirdOctet);		result[3] = Utility.IntegerToOneByte(fourthOctet);		return result;	}		public InetAddress getInetAddress() throws UtilityException, UnknownHostException {		byte[] address = new byte[4];		address[0] = Utility.IntegerToOneByte(firstOctet);		address[1] = Utility.IntegerToOneByte(secondOctet);		address[2] = Utility.IntegerToOneByte(thirdOctet);		address[3] = Utility.IntegerToOneByte(fourthOctet);		return InetAddress.getByAddress(address);	}		public boolean equals(Object obj) {		try {			byte[] data1 = this.getBytes();			byte[] data2 = ((Address) obj).getBytes();			if ((data1[0] == data2[0]) && (data1[1] == data2[1]) &&			    (data1[2] == data2[2]) && (data1[3] == data2[3])) return true;			return false;		} catch (UtilityException ue) {			return false;		}	}}

⌨️ 快捷键说明

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