
正文
ip分省java代码 java ip地址与掩码与计算
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java算法 将ip地址段拆分成一个个
拆分啊,可以用下面的方法:
先定义一个String接受字符串进来,或者把字符串用“”括起来,然后用这个变量或者“”括起来的,substring截取字符串,条件是第一个~~前的,用indexof,(注意截取位置不包括最后一个),把其截取出来存入你想存的地方,成功后把字符串截取出来的部分从原字符串中去掉,同时也把第一个~~去掉,,然后继续截取第一个~~前的,一个循环把这些括起来,然后有多少ip,截取多少次,要放数组,放数组,要放list放list,还不你说了算?/?
public class testIPSplit {
/**
* @param args
* 例如58.63.239.160~~58.63.239.191变成 58.63.239.160 58.63.239.161 。。。。。问题补充:
* 有一个字符串的IP组:10.46.40.1--10.46.88.127,将这个ip地址段拆分为一个个ip地址,如
* 10.46.40.1;10.46.40.2;10.46.40.3。。。一直到10.46.88.125;10.46.88.126;10.46.88.127,
* 最后将这些单个地址存入一个数组中 要写一个算法
*
*
*/
public static void main(String[] args) {
String ipin="58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191";/*定义一个字符串把你要转换的ip地址接受进来*/
System.out.println("开始时接收到的字符串是:"+ipin);
int account=0;
for(int k=0;kipin.length()-1;k++){
if("~".equals(ipin.substring(k,(k+1))) "~".equals(ipin.substring((k+1),(k+2)))){
account++;
}
}
if(!"~".equals(ipin.substring(ipin.length()-1, ipin.length())) !"~".equals(ipin.substring(ipin.length()-2, ipin.length()-1))){
account++;
}
String[] ipout=new String[account];
int i=0;
int count=0;
for(i=0;iipin.length();i++){
if(ipin!=""){
if(count1){
if(ipin.indexOf("~~")==-1 ){
count++;
ipout[i]=ipin;/*取出ip地址放入数组中*/
ipin=ipin.substring(0,ipin.length());
}
if(ipin.indexOf("~~")!=-1){
ipout[i]=ipin.substring(0,ipin.indexOf("~~"));/*取出ip地址放入数组中*/
ipin=ipin.substring(ipin.indexOf("~~")+2,ipin.length());
}
}
}
}
System.out.println("把里面的ip地址取出来后放入数组中,数组的长度是:"+ipout.length);
for(int j=0;jipout.length;j++){
System.out.println("从字符串中取出的第"+(j+1)+"个IP地址是:"+ipout[j]);
}
}
}
算了,本来也不是为了分才给你回答的,我花了点时间给你写了一个,我测试过,可以使用,到时候把类的名字改过来,注意下我有没有少粘贴括号的话,放到程序中,可以直接运行。
对了,粘贴一下显示结果吧:
***********************************************************************************************************************
开始时接收到的字符串是:58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191~~58.63.239.160~~58.63.239.191~~58.63.239.191~~58.63.239.160~~58.63.239.191
把里面的ip地址取出来后放入数组中,数组的长度是:9
从字符串中取出的第1个IP地址是:58.63.239.160
从字符串中取出的第2个IP地址是:58.63.239.191
从字符串中取出的第3个IP地址是:58.63.239.160
从字符串中取出的第4个IP地址是:58.63.239.191
从字符串中取出的第5个IP地址是:58.63.239.160
从字符串中取出的第6个IP地址是:58.63.239.191
从字符串中取出的第7个IP地址是:58.63.239.191
从字符串中取出的第8个IP地址是:58.63.239.160
从字符串中取出的第9个IP地址是:58.63.239.191
数组长度是随着你的输入变的记得那个分隔符,变了中间所有用到分隔符的也要变更
相关问答
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: 求java获取手机ip或者平板ip的代码
//获取ip地址
public String getLocalIpAddress()
{
try {
String ipv4;
ArrayListNetworkInterface nilist = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface ni: nilist)
{
ArrayListInetAddress ialist = Collections.list(ni.getInetAddresses());
for (InetAddress address: ialist)
{
if (!address.isLoopbackAddress() InetAddressUtils.isIPv4Address(ipv4=address.getHostAddress()))
{
return ipv4;
}
}
}
} catch (SocketException ex)
{
//Log.e(LOG_TAG, ex.toString());
}
return null;
}
Q3: java中怎样写通过IP查到城市地址的代码
你去下载一个纯真ip查询的软件 然后把里边的地址导出来 是一个txt的文件
里边的格式是这样的
1.4.5.0 1.4.63.255 福建省 电信
1.4.64.0 1.4.127.255 广东省 电信
1.4.128.0 1.8.255.255 福建省 电信
前2个是ip 最后一个是地址
......然后就不用我多说了把........
关于ip分省java代码和java ip地址与掩码与计算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





