各位大侠,php中ip2long,long2ip的2个函数,在java中如何实现?100分

savage711 2005-10-09 11:12:32
各位大侠,php中ip2long,long2ip的2个函数,在java中如何实现?100分
...全文
361 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯本 2005-10-09
  • 打赏
  • 举报
回复
我还没写完你就结帖了,^_^.以下是全部两个函数的程序:

import java.net.*;

public class test {
public static int str2Ip(String ip) throws UnknownHostException {
InetAddress address = InetAddress.getByName(ip);
byte[] bytes = address.getAddress();
int a, b, c, d;
a = byte2int(bytes[0]);
b = byte2int(bytes[1]);
c = byte2int(bytes[2]);
d = byte2int(bytes[3]);
int result = (a << 24) | (b << 16) | (c << 8) | d;
return result;
}
public static int byte2int(byte b) {
int l = b & 0x07f;
if (b < 0) {
l |= 0x80;
}
return l;
}


public static long ip2long(String ip) throws UnknownHostException {
int ipNum = str2Ip(ip);
return int2long(ipNum);
}

public static long int2long(int i) {
long l = i & 0x7fffffffL;
if (i < 0) {
l |= 0x080000000L;
}
return l;
}
public static String long2ip(long ip) {
int [] b=new int[4] ;
b[0] = (int)((ip >> 24) & 0xff);
b[1] = (int)((ip >> 16) & 0xff);
b[2] = (int)((ip >> 8) & 0xff);
b[3] = (int)(ip & 0xff);
String x;
Integer p;
p=new Integer(0);
x=p.toString(b[0])+"."+p.toString(b[1])+"."+p.toString(b[2])+"."+p.toString(b[3]);

return x;

}

public static void main(String[] args) throws Exception {
long ip=ip2long("192.168.0.111");
System.out.println(ip);
System.out.println(long2ip(ip));

}

}
savage711 2005-10-09
  • 打赏
  • 举报
回复
ok
柯本 2005-10-09
  • 打赏
  • 举报
回复
//ip2long

import java.net.*;

public class test {
public static int str2Ip(String ip) throws UnknownHostException {
InetAddress address = InetAddress.getByName(ip);
byte[] bytes = address.getAddress();
int a, b, c, d;
a = byte2int(bytes[0]);
b = byte2int(bytes[1]);
c = byte2int(bytes[2]);
d = byte2int(bytes[3]);
int result = (a << 24) | (b << 16) | (c << 8) | d;
return result;
}
public static int byte2int(byte b) {
int l = b & 0x07f;
if (b < 0) {
l |= 0x80;
}
return l;
}


public static long ip2long(String ip) throws UnknownHostException {
int ipNum = str2Ip(ip);
return int2long(ipNum);
}

public static long int2long(int i) {
long l = i & 0x7fffffffL;
if (i < 0) {
l |= 0x080000000L;
}
return l;
}

public static void main(String[] args) throws Exception {
System.out.println(ip2long("192.168.0.111"));

}

}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧