「java访问内网地址」怎样访问内网地址
今天给各位分享java访问内网地址的知识,其中也会对怎样访问内网地址进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java项目如何修改访问访问地址
- 2、java怎么获取当前电脑的内网ip
- 3、java编程,获取局域网内服务器端的ip地址
- 4、java获取局域网ip地址 具体代码
- 5、java socket编程 怎么访问内网的服务器
- 6、如何用java获得局域网内所有ip?最好用arp方法,ping的太慢
java项目如何修改访问访问地址
这个与部署无关,与tomcat服务器配置有关,
记事本打开配置文件server.xml,可以参照下面的配置,增加或修改address内容为192.168.99.3,如下:
Connector port="8084" address="192.168.99.3" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /
参照上面的代码修改你的server.xml,修改好后重新启动tomcat服务器,即可。
java怎么获取当前电脑的内网ip
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);
}
java编程,获取局域网内服务器端的ip地址
socket.connect(new InetSocketAddress(ip, port), timeout)
看有没有抛异常 没异常就是已经连接上了
想获取服务器名称 可以用ARP协议 或者测试连接的时候服务器回应一个名称
package baiduzhidao;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
/**
* 端口号
*/
int port = 10000;
/**
* 连接延时
*/
int timeout = 300;
System.out.println("Scanner Start...");
Socket socket;
/**
* 扫描
*/
for (int i = 1, k = 254; i k; i++) {
if ((socket = isOnLine("192.168.1." + i, port, timeout)) != null) {
System.out.println("Server:"
+ socket.getInetAddress().getHostAddress()
+ ":" + socket.getPort() + " Is Waiting...");
}
/**
* 关闭连接
*/
if (socket != null !socket.isClosed()) {
try {
socket.close();
} catch (IOException e) {
socket = null;
}
}
}
System.out.println("Scanner end...");
}
/**
* 测试连接服务器,返回连接成功后的Socket
*
* @param ip
* 服务器Ip
* @param port
* 服务器端口号
* @param timeout
* 连接延时
* @return 返回连接成功后的Socket
*/
private static Socket isOnLine(String ip, int port, int timeout) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(ip, port), timeout);
} catch (IOException e) {
return null;
}
return socket;
}
}
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){}
}
}
}
java socket编程 怎么访问内网的服务器
我的方向有点和你不一样,但是关于socket的一般是差不多的,建议你找找socket流的知识.
Socket内含输入,输出流,只需获取Socket的流对象,就可以对流进行读写操作了。比如,若想向Socket的输出流写数据,只须另一方从自己的Socket的输入流中读取数据即可给你个例子吧,是模拟客户端和服务器端的数据交互.
//客户端import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;
public class MyClent { public static void main(String[] args) { PrintStream ps = null; BufferedReader br = null; BufferedReader message = null; try { Socket scoket = new Socket("127.0.0.1", 1254); ps = new PrintStream(scoket.getOutputStream()); br = new BufferedReader(new InputStreamReader(scoket.getInputStream())); message = new BufferedReader(new InputStreamReader(System.in)); while(true){ ps.println("客户端向服务器发送的数据是:"+message.readLine()); System.out.println(br.readLine()); ps.flush(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
//服务器端import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;
public class MyServer {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub PrintStream ps = null; BufferedReader br = null; BufferedReader message = null; try { ServerSocket server = new ServerSocket(1254); Socket scoket = server.accept();// new Test(scoket); ps = new PrintStream(scoket.getOutputStream()); br = new BufferedReader(new InputStreamReader(scoket.getInputStream())); message = new BufferedReader(new InputStreamReader(System.in)); while(true){ System.out.println(br.readLine()); ps.println("服务器向客户端发送的数据是:"+message.readLine()); ps.flush(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
}/p/font/p
如何用java获得局域网内所有ip?最好用arp方法,ping的太慢
需要遍历局域网IP的,大体分为两步:
1.得到局域网网段,可由自己机器的IP来确定
2.根据IP类型,一次遍历局域网内IP地址 给一个JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用自己编写相应代码调用便可 代码如下:
package bean;
import java.io.*;
import java.util.*;
java访问内网地址的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎样访问内网地址、java访问内网地址的信息别忘了在本站进行查找喔。
发布于:2022-12-04,除非注明,否则均为
原创文章,转载请注明出处。