
正文
java代码定义ip java代码定义json数据
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
IP 地址排序Java
package src;
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
class Ip { //定义ip bean
int ip1;
int ip2;
int ip3;
int ip4;
public Ip(int ip1, int ip2, int ip3, int ip4) {
this.ip1 = ip1;
this.ip2 = ip2;
this.ip3 = ip3;
this.ip4 = ip4;
}
public int getIp1() {
return ip1;
}
public void setIp1(int ip1) {
this.ip1 = ip1;
}
public int getIp2() {
return ip2;
}
public void setIp2(int ip2) {
this.ip2 = ip2;
}
public int getIp3() {
return ip3;
}
public void setIp3(int ip3) {
this.ip3 = ip3;
}
public int getIp4() {
return ip4;
}
public void setIp4(int ip4) {
this.ip4 = ip4;
}
}
class ComparatorUser implements Comparator {
public int compare(Object arg1, Object arg2) {
Ip ip1 = (Ip) arg1;
Ip ip2 = (Ip) arg2;
int flag = ip1.getIp1() - ip2.getIp1();
if (flag == 0) { //如果一段相等用二段排序,以此类推
flag = ip1.getIp2() - ip2.getIp2();
} else if (flag == 0) {
flag = ip1.getIp3() - ip2.getIp3();
} else if (flag == 0) {
flag = ip1.getIp4() - ip2.getIp4();
}
return flag;
}
}
public class Test {
public static void main(String[] args) {
ListIp ipList = new ArrayListIp(); //定义ip List
ipList.add(new Ip(255, 2, 3, 4)); //存放ip,你的ip是从文本中读出来的.我相信你会读,也会放.
ipList.add(new Ip(172, 7, 8, 2));
ipList.add(new Ip(2, 3, 4, 5));
ipList.add(new Ip(2, 1, 2, 3));
ipList.add(new Ip(1, 2, 3, 4));
ipList.add(new Ip(202, 2, 3, 4));
ComparatorUser comparator = new ComparatorUser();
Collections.sort(ipList, comparator);
for (Ip ip : ipList) { //输出结果,jdk 1.5以上可以这么遍历list,如果你是1.4 就用list的长度遍历即可
System.out.println(ip.getIp1() + "." + ip.getIp2() + "."
+ ip.getIp3() + "." + ip.getIp4());
}
}
}
运行结果如下.
1.2.3.4
2.1.2.3
2.3.4.5
172.7.8.2
202.2.3.4
255.2.3.4
相关问答
Q1: java获取局域网ip地址 具体代码
import java.io.*;
import java.util.*;
import java.net.InetAddress;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30个线程
while(threadCount30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(".");
String ss = hostAddress.substring(0,k+1);
for(int i=1;i =255;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount0)
Thread.sleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals("true"))
System.out.println(key+"--"+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i 7; i++)
input.readLine();
String line= input.readLine();
if (line.length() 17 || line.substring(8,17).equals("timed out"))
ping.put(ip,"false");
else
ping.put(ip,"true");
//线程结束
threadCount -= 1;
}catch (IOException e){}
}
}
}
Q2: 给定一个ip,怎么判断它是否在一个数组中?请用java代码,
我说一下方法吧,用伪代码讲了。
一个IP类
class IP{
private String ipStr;
private Integer [] ipvalue=new Integer[4]();
public IP(){
ipStr="localhost";//等等····
ipvalue=new Integer[]{127,0,0,1};//
}
//- - - - -其他的方法,setter ,getter
public Boolean ipIn(IP ip){
if(ipStr!=nullipStr.eq(ip.getIpStr()))return true;/////方法自己补齐。具体的eq方法名不太记得了
Integer [] ipv=ip.etIpvalue();
Boolean res=true;
for(int i=0;i4;i++){
int t=ipv[i];
if(t!=-1t!=ipvalue[i]){//-1 表示通配符
res=false;
break;//ip地址已经不等
}
}
return res;
}
}
/////该方法用于达成你的目的
public Boolean ipInArr(IP ip,IP[] ips){
for(IP i:ips){
if(ip.ipIn(i))return true;//找到了,返回
}
return false;//没找到
}
以上代码为伪代码,请不要照抄,其中一些函数名可能写错了,请注意修改。
Q3: 求java中string类型转化为ip地址的代码,可以是任意字符串,如果不是ip的话做错误处理
用split(“.”)将字符串分割成四段,再转换成数字,最后转换成二进制串,就是ip.。如果不够四段或者不是数字等等就是错误
Q4: java如何确认IP是否属于某地址段
java确认IP属于某地址段主要是判断IP前两组是否相同,使用如下方法:
(1)如果同一个网段的概念是:
192.168.0.1和192.168.0.254,那么用.拆分判断第一二三部分完全一致应该就可以了,当然填写的时候1到255的限制应该是起码的要求了;
(2)如果192.168.0.1 和 192.168.0.254 ,再配合上子网掩码定义为同一网段的话,那就用两个ip转换为二进制之后分别和二进制子网掩码做逻辑与,结果一致是不是就可以定义为同一网段;
网络中对网段的定义我也不太了解,不知道你是要遵循网络中的定义还是按你自己的需求来;
java代码定义ip的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java代码定义json数据、java代码定义ip的信息别忘了在本站进行查找喔。







