Java编程 怎样获得自己在外网的真实ip

Java编程 怎样获得自己在外网的真实ip,第1张

其实就是在外网搞一个服务器,然后用java去访问这个服务器,然后服务器就能获取到你的外网ip,只需要对数据进行解析。服务器可以自己架设或者网上也有很多提供这样服务的网站,如各种的查ip的网站都有显示自己外网ip的功能。下边是个例子,可以直接运行

import javaioBufferedReader;

import javaioInputStreamReader;

import javanetURL;

public class ListIP {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

Systemoutprintln("本机的外网IP是:"+ListIPgetWebIp(">

以下以WINDOW *** 作系统为例。LINUX的思路相同。

1,在E;\下建立如下两个bat文件,内容分别如下:

e:\setip1bat文件内容:

rem  设置IP、子网掩码、默认网关

c:

cd \

netsh exec  e:\setipbat

另一个文件e:\setipbat文件内容:

interface

ip

set address "本地连接" static 1921681111  2552552550 19216811

exit

2,执行脚本命令的JAVA程序

线程 破解ip屏蔽 比较容易 只要拨号就行了

多线程抓取数据也比较容易 但是引入多线程之后 拨号就容易出现问题

多线程抓取的时候 这个拨号就比较麻烦一点 因为 多线程拨号

会出现 第一个线程拨号的时候 第二个线程也同时进入拨号 第三个  个  同样会进入 这样会导致线程一直在拨号 导致无限循环

怎么控制这个拨号同步 达到较高的效率呢

本人是新手 采用了比较简单的方法

就是 第一个开始拨号 就告诉后面的 我已经在拨号了

你们反正抓取不了数据 那就先等一等 等我第一个拨号完毕 大家所有线程在进行下一轮的循环抓取数据

线程类

其中

AdslThead isadsl = true; 就是用来设置 告诉后面的线程 已经有人在拨号了

package yjf util;

import java util Date;

import java util List;

public class GetWebThread extends Thread{

/

线程

/

public void run(){

try {

while (true) {

int day = ;

long time = new Date() getTime()

//用来同步抓取线程

synchronized( searchthead ){

Main thisdaycount++;

if(Main thisdaycount>Main daycount){

break;

}

System out println( 开始查询第 +(Main thisdaycount)+ 天 )

Thread sleep( )

day = Main thisdaycount ;

}

//获取抓取的时间

String datetext = TimeUtil date format(TimeUtil addDaysForDate(day))

String[] txt =FileUtil getCityByTxtFile()

for(int t= ;t<txt length;t++){

String[] way = txt[t] split( \\| )

String start = way[ ];

String end = way[ ];

//抓取到的数据列表

List<DataBean> datalist = Main getDataList(datetext start end)

if(datalist!=null){

Main isadsl = ;

CheckAdsl adsllasttime = new Date() getTime()

FileUtil addDataToFileCsv(datalist)

Main log printLog( ==== +datetext+ = +start+ = +end+ = +t+ =数据总数 +datalist size())

}else{

Thread sleep( )

AdslThead isadsl = true;

Thread sleep( )

//判断是否正在拨号 并暂停线程

while (AdslThead isadsl) {

Thread sleep( )

}

t ;

}

}

long time = new Date() getTime()

Main log printLog(datetext+ ==查询完毕=========耗时 +(time time ))

}

} catch (Exception e) {

Main log printLog(e getMessage())

e printStackTrace()

}

}

}

拨号监听线程

package yjf util;

import java util Date;

import java util TimerTask;

public class AdslThead extends TimerTask{

public static boolean isadsl = false;

@Override

public void run() {

try {

if(isadsl){

System out println( 拨号线程线程启动 )

ConnectAdslNet reconnectAdsl( 宽带 Main adslname Main adslpass)

isadsl = false;

}

} catch (Exception e) {

System out println(e getMessage())

}

}

}

启动拨号监听程序   每隔一段时间 循环一次 这样稳定性 准确性更高

Timer adsl=new Timer()

lishixinzhi/Article/program/Java/hx/201311/25815

//获取ip地址

public String getLocalIpAddress()

{

try {

String ipv4;

ArrayList<NetworkInterface> nilist = Collectionslist(NetworkInterfacegetNetworkInterfaces());

for (NetworkInterface ni: nilist)

{

ArrayList<InetAddress> ialist = Collectionslist(nigetInetAddresses());

for (InetAddress address: ialist)

{

if (!addressisLoopbackAddress() && InetAddressUtilsisIPv4Address(ipv4=addressgetHostAddress()))

{

return ipv4;

}

}

}

} catch (SocketException ex)

{

//Loge(LOG_TAG, extoString());

}

return null;

}

import javanetServerSocket;

import javanetSocket;

public class TcpServer

{

public static void main(String[] args) throws Exception

{

// 创建服务器端的socket对象

ServerSocket ss = new ServerSocket(5000);

// 监听连接

Socket socket = ssaccept();

// 直到连接建立好之后代码才会往下执行

Systemoutprintln("Connected Successfully!");

}

}

import javanetSocket;

public class TcpClient

{

public static void main(String[] args) throws Exception

{

Socket socket = new Socket("127001", 5000);

}

}

如何用java写一个呼叫中心系统

这个你肯定需要电信的支持或者华为的语音支持或者青牛的支持,一般他们会给你控件调用的

我们现在采用的是B/S系统但是纯BS是不行的我们采用的是把供应商的DLL打包做成ActiveX控件支持的

新建一个窗口,然后实现一个关闭按钮”窗口的功能

以上就是关于Java编程 怎样获得自己在外网的真实ip全部的内容,包括:Java编程 怎样获得自己在外网的真实ip、java如何实现对本机的ip地址 网关地址 子网、java破解ip屏蔽+多线程同步拨号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10139611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存