package test;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
public class SpemCheck {
public static void main(String[] args) {
isSpammer("180.97.33.107");
}
public static void hostAnalysyze() {
try {
//域名解析
InetAddress address = InetAddress.getByName("180.97.33.107");
System.out.println(address.getHostName());
InetAddress[] addresses = InetAddress.getAllByName("www.baidu.com");
for(InetAddress a:addresses){
System.out.println(a);
}
System.out.println(address.getCanonicalHostName());
System.out.println(InetAddress.getLocalHost().getCanonicalHostName());//獲取本地主機名
System.out.println(InetAddress.getLocalHost().getHostAddress());//獲取本地IP
isIPv4Orv6(address);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
/**
* 判斷IP是IP v4還是IP v6
* @param address
*/
public static void isIPv4Orv6(InetAddress address){
byte[] b = address.getAddress();
if(b.length==4){
System.out.println(address + " is IP v4");
}else if(b.length==6){
System.out.println(address + " is IP v6");
}
}
/**
* 列出本地主機所有的網絡接口
*/
public static void interfaceList(){
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while(interfaces.hasMoreElements()){
NetworkInterface ni = interfaces.nextElement();
System.out.println(ni);
}
} catch (SocketException e) {
e.printStackTrace();
}
}
//向sbl.spamhaus.org詢問給定的地址是否爲垃圾郵件發送者
public static boolean isSpammer(String host){
try {
InetAddress address = InetAddress.getByName(host);
byte[] quad = address.getAddress();
String query = "sbl.spamhaus.org";
for (byte b:quad) {
int unsigned = b<0 ? b+256 :b;
query = unsigned + "." + query;
}
InetAddress.getByName(query);
return true;
} catch (UnknownHostException e) {
e.printStackTrace();
}
return false;
}
}
Java網絡編程之InetAddress
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.