/
获取客户端ip
@param request
@return
/
>
看有没有抛异常 没异常就是已经连接上了
想获取服务器名称 可以用ARP协议 或者测试连接的时候服务器回应一个名称
package baiduzhidao;import javaioIOException;
import javanetInetSocketAddress;
import javanetSocket;
public class Client {
public static void main(String[] args) {
/
端口号
/
int port = 10000;
/
连接延时
/
int timeout = 300;
Systemoutprintln("Scanner Start");
Socket socket;
/
扫描
/
for (int i = 1, k = 254; i < k; i++) {
if ((socket = isOnLine("1921681" + i, port, timeout)) != null) {
Systemoutprintln("Server:"
+ socketgetInetAddress()getHostAddress()
+ ":" + socketgetPort() + " Is Waiting");
}
/
关闭连接
/
if (socket != null && !socketisClosed()) {
try {
socketclose();
} catch (IOException e) {
socket = null;
}
}
}
Systemoutprintln("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 {
socketconnect(new InetSocketAddress(ip, port), timeout);
} catch (IOException e) {
return null;
}
return socket;
}
}
import javaio;
import javanet;
try {
URL url = new URL(">
import javautil;
import javanet;public class getMyIP
{
public static void main(String[] args)
{
String IP = null;
String host = null;
try
{
InetAddress ia = InetAddressgetLocalHost();
host = iagetHostName();//获取计算机名字
IP= iagetHostAddress();//获取IP
}
catch(UnknownHostException e)
{
eprintStackTrace();
}
Systemoutprintln(host);
Systemoutprintln(IP);
}
}
在JSP里,获取客户端的IP地址的方法是:requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,用requestgetRemoteAddr()方法获取的IP地址是:127001 或 1921681110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的>
举个例子,假设服务器端运行的是servlet,客户端(浏览器)发送url到服务器,经过解析,服务器找到并运行相应的servlet程序,在servlet程序中可以接受到用户提交的信息,比如用户提交方式是Get方式,则servlet调用其doGet方法,在doGet方法中,可以通过request获取用户提交的数据(包括ip)
protected void doGet(>
import javanetInetAddress;
import javanetUnknownHostException;
public class TestInetAddress {
InetAddress myIpAddress = null;
InetAddress[] myServer = null;
public static void main(String args[]) {
TestInetAddress address = new TestInetAddress();
Systemoutprintln("Your host IP is: " + addressgetLocalhostIP());
String domain = >
以上就是关于java中,如何获取真实的IP地址全部的内容,包括:java中,如何获取真实的IP地址、java编程,获取局域网内服务器端的ip地址、请问java获取请求对象的电脑ip和网络ip的方法是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)