×

java获取服务器ip

java获取服务器ip(服务端怎么获取客户端的ip java)

admin admin 发表于2023-11-08 21:15:09 浏览45 评论0

抢沙发发表评论

本文目录

服务端怎么获取客户端的ip java

网络通信可分为两种模式:TCP有连接的通信UDP无连接的通信依照上述的问题我可以理解为你是要进行有连接的通信。是要经过三次握手才能实现可靠的连接第一次:建立连接时三次握手,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN(Synchronize Sequence Numbers)同步序列号。服务器端即可使用:Socket s=serverSocket.accept();String clientIP=s.getInetAddress().toString();这就实现了java服务器端获取到连接此服务器的客户端的IP了,你若想实现获取所有连接此服务器的客户端的IP,你可以把每次accept()返回的socket放进全局的Vector里面,然后在遍历这个vector方法就同上代码咯……

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地址

public static void main(String args) { try { // 获取计算机名 String name = InetAddress.getLocalHost().getHostName(); // 获取IP地址 String ip = InetAddress.getLocalHost().getHostAddress(); System.out.println(“计算机名:“+name); System.out.println(“IP地址:“+ip); } catch (UnknownHostException e) { System.out.println(“异常:“ + e); e.printStackTrace(); } }是否可以解决您的问题?

nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP

/**  * 获取访问者IP地址  * 《p》在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。《/p》  * 《p》本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割)。《/p》  * 《p》如果还不存在则调用Request.getRemoteAddr()。《/p》  * @param request  * @return  */ public static String getIp(HttpServletRequest request) { String ip = request.getHeader(“X-Real-IP“); if (ValidateUtil.isNotEmpty(ip) && !“unknown“.equalsIgnoreCase(ip)) { return ip; } ip = request.getHeader(“X-Forwarded-For“); if (ValidateUtil.isNotEmpty(ip) && !“unknown“.equalsIgnoreCase(ip)) { int index = ip.indexOf(“,“); if (index != -1) { return ip.substring(0, index); } else { return ip; } } else { return request.getRemoteAddr(); } }

java 怎么写一个接口 让他返回服务器的动态IP地址和端口

首先服务器IP是动态的,这个接口还怎么访问呢?所以,应该是要请求一个固定可访问的接口,然后这个接口去访回动态的其他服务器IP和端口,而这端口和IP是没办法在本机获取,需要在想要被访问的程序启动时,将其IP和端口写入共享区域(数据库,共享内存等),固定的获取接口根据条件获取动态IP和端口。

java 调用接口获取服务器IP和端口号

《%=request.getservername()%》服务器的域名《%=java.net.inetaddress.getlocalhost().gethostaddress()%》服务器的ip地址《%=request.getserverport()%》服务器正在运行的端口

JAVA怎么获取服务器IP

首先IP为一个字符串,例如:class test{static void Split(string ip,out string str1){int i=ip.length;while(i》0){char ch=ip;if(ch==’:’)break;i--;}str1=ip.Substring(0,i);}static void Main(){string str1;Split(“192.168.0.255:8080“,out str1)Console.WriteLine(“{0}“,str1);}}str1中保存的就是你的ip,192.168.0.255

java中如何获取到本机的外网ip地址

java获取本机的外网ip示例:import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 获取本机外网IP地址 * 思想是访问网站http://checkip.dyndns.org/,得到返回的文本后解析出本机在外网的IP地址 * @author pieryon * */public class ExternalIpAddressFetcher { // 外网IP提供者的网址 private String externalIpProviderUrl; // 本机外网IP地址 private String myExternalIpAddress; public ExternalIpAddressFetcher(String externalIpProviderUrl) { this.externalIpProviderUrl = externalIpProviderUrl; String returnedhtml = fetchExternalIpProviderHTML(externalIpProviderUrl); parse(returnedhtml); } /** * 从外网提供者处获得包含本机外网地址的字符串 * 从http://checkip.dyndns.org返回的字符串如下 * 《html》《head》《title》Current IP Check《/title》《/head》《body》Current IP Address: 123.147.226.222《/body》《/html》 * @param externalIpProviderUrl * @return */ private String fetchExternalIpProviderHTML(String externalIpProviderUrl) { // 输入流 InputStream in = null; // 到外网提供者的Http连接 HttpURLConnection httpConn = null; try { // 打开连接 URL url = new URL(externalIpProviderUrl); httpConn = (HttpURLConnection) url.openConnection(); // 连接设置 HttpURLConnection.setFollowRedirects(true); httpConn.setRequestMethod(“GET“); httpConn.setRequestProperty(“User-Agent“, “Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)“); // 获取连接的输入流 in = httpConn.getInputStream(); byte bytes=new byte;// 此大小可根据实际情况调整 // 读取到数组中 int offset = 0; int numRead = 0; while (offset 《 bytes.length && (numRead=in.read(bytes, offset, bytes.length-offset)) 》= 0) { offset += numRead; } // 将字节转化为为UTF-8的字符串 String receivedString=new String(bytes,“UTF-8“); // 返回 return receivedString; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { in.close(); httpConn.disconnect(); } catch (Exception ex) { ex.printStackTrace(); } } // 出现异常则返回空 return null; } /** * 使用正则表达式解析返回的HTML文本,得到本机外网地址 * @param html */ private void parse(String html){ Pattern pattern=Pattern.compile(“(\\d{1,3})(\\d{1,3})“, Pattern.CASE_INSENSITIVE); Matcher matcher=pattern.matcher(html); while(matcher.find()){ myExternalIpAddress=matcher.group(0); } } /** * 得到本机外网地址,得不到则为空 * @return */ public String getMyExternalIpAddress() { return myExternalIpAddress; } public static void main(String args){ ExternalIpAddressFetcher fetcher=new ExternalIpAddressFetcher(“http://checkip.dyndns.org/“); System.out.println(fetcher.getMyExternalIpAddress()); }}

谁清楚java代码获取ip地址方法是什么

1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器