精华内容
下载资源
问答
  • Android 判断IP地址及端口是否正确

    万次阅读 2021-03-17 18:18:53
    一、前言 在进行网络编程时,端口或者...a) IP地址长度判断 b) 切割字符串,是否能够被分为四段 c) 每段是否为数字 d) 每个数字是否在0 ~ 255之间 三、参考代码 private boolean isNetPort(int port) { boolean flag

    一、前言

    在进行网络编程时,端口或者IP的不正确会导致应用挂掉,通过以下方法可以对端口或者IP进行判断是否合法。

    二、解决思路

    1.端口判断

    端口的有效范围在 0 ~ 65535之间,写一个判断方法即可。

    2. IP判断

    这儿的IP指IPv4地址。
    a) IP地址长度判断
    b) 切割字符串,是否能够被分为四段
    c) 每段是否为数字
    d) 每个数字是否在0 ~ 255之间

    三、参考代码

        private boolean isNetPort(int port) {
            boolean flag = false;
            if (port >= 0 && port <= 65535) {
                flag = true;
            }
            return flag;
        }
    
        private boolean isIpAddr(String ipString) {
    
            // 判断是否是7-15位之间(0.0.0.0-255.255.255.255.255)
            if (ipString.length() < 7 || ipString.length() > 15) return  false;
    
            // 判断是否能以小数点分成四段
            String[] ipArray = ipString.split("\\.");
            if (ipArray.length != 4) return false;
            for (int i = 0; i < ipArray.length; i++) {
                try {
                    // 判断每段是否都是数字
                    int number = Integer.parseInt(ipArray[i]);
                    // 判断每段数字是否都在0-255之间
                    if (number < 0 || number > 255) return false;
                } catch (Exception e) {
                    return false;
                }
            }
            return true;
        }
    
    展开全文
  • ip地址正确,redis却始终连接失败

    千次阅读 2018-08-09 15:16:20
    但是测试发过来他在本地部署项目修改的配置IP端口都是正确的,远程也能ping通。  之前没遇到过这种问题,后来发现他是连接的本机的redis的服务,而没有修改的Redis的默认绑定。  Redis的默认绑定的IP为127.0.0.1...

        今天测试人员测试项目的时候打开页面就一直报错,查看错误日志是Redis的连接失败的问题。但是测试发过来他在本地部署项目修改的配置IP端口都是正确的,远程也能ping通。

         之前没遇到过这种问题,后来发现他是连接的本机的redis的服务,而没有修改的Redis的默认绑定。

         Redis的默认绑定的IP为127.0.0.1,但如果想内网的机器都能访问,则需要设置内网的IP地址,如192.168.100.66,然后redis.host则可以设置为192.168.100.66访问Redis的。

              

    Redis ip地址绑定默认说明:

    ################################## NETWORK #####################################
    
    # By default, if no "bind" configuration directive is specified, Redis listens
    # for connections from all the network interfaces available on the server.
    # It is possible to listen to just one or multiple selected interfaces using
    # the "bind" configuration directive, followed by one or more IP addresses.
    #
    # Examples:
    #
    # bind 192.168.1.100 10.0.0.1
    # bind 127.0.0.1 ::1
    #
    # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
    # internet, binding to all the interfaces is dangerous and will expose the
    # instance to everybody on the internet. So by default we uncomment the
    # following bind directive, that will force Redis to listen only into
    # the IPv4 lookback interface address (this means Redis will be able to
    # accept connections only from clients running into the same computer it
    # is running).
    #
    # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
    # JUST COMMENT THE FOLLOWING LINE.
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    bind 127.0.0.1

     主要是意思是,如果设置了绑定,只能通过绑定的地址访问的Redis。

    如果不设置绑定,则所有地址都可以访问,如果在项目部署外网,所有人都可以访问到,所以这里也是个注意的地址,还是设置绑定比较安全。

    绑定多个IP地址:

    bind 127.0.0.1 192.168.100.66

     127.0.0.1和192.168.100.66之间通过空格分隔,不是逗号。

    但如果Redis的是自启动的,没有加载配置文件(redis.windows.conf)启动,这里的设置也是无效的。

    如果不绑定IP地址(192.168.100.66),直接设置redis.host = 192.168.100.66是访问不了的,出现以下的错误:

    redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

    如果放开,直接注释掉bind配置,然后把protected-mode属性设置no,就可以访问了。

    如果还不行,可能因为双击redis.server启动服务未加载配置文件,使用命令行启动就可以了

    redis-server redis.windows.conf

    展开全文
  • 下列哪个IP地址可以分配给一台计算机?  正确答案: D 你的答案: B (错误) 256.1.3.4 197.3.11.0 199.5.89 11.15.33.235 ip 地址是由网络地址和主机地址组成的,如一个C类网络地址的前3个字节用来表示网络...

    下列哪个IP地址可以分配给一台计算机?

      正确答案: D   你的答案: B (错误)

    256.1.3.4
    197.3.11.0
    199.5.89
    11.15.33.235

    ip 地址是由网络地址和主机地址组成的,如一个C类网络地址的前3个字节用来表示网络号,只有一个字节被用来表示主机地址:

    网络.网络.网络.主机(192.168.100.102)
    有效的主机ID:
    将所有的主机位置都为off,就是全为0,所得到的地址就是192.168.100.0,它是一个网络地址,代表的是一个网段;
    如果将所有的主机位置都为on,就是全为1,所得到的地址就是192.168.100.255,它是一个广播地址,

    我们的合法主机地址就是介于网络地址和广播地址之间的地址,比如:在192.168.100.0——192.168.100.255 之间都可以。

    补充一下广播地址的概念:
    被应用程序和主机用来将信息发送到网络上所有结点的地址:比如192.168.100.255,它用于指向192.168.100的所有主机。

    展开全文
  • //[转]JAVA取本机ip地址正确方法,ipv6有效 //除普通环境,还能适用于多网卡的、Linux环境 import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.util....
    
    //[转]JAVA取本机ip地址的正确方法,ipv6有效 
    
    //除普通环境,还能适用于多网卡的、Linux环境
    
    import java.net.Inet6Address;
    import java.net.InetAddress;
    import java.net.NetworkInterface;
    import java.util.Enumeration;
    
    public class Test {
    
    public static void main(String[] args) throws Exception {
       Test t = new Test();
       t.getLocalIP();
    }
    
    public void getLocalIP() throws Exception {
       Enumeration e1 = (Enumeration) NetworkInterface.getNetworkInterfaces();
       while (e1.hasMoreElements()) {
        NetworkInterface ni = (NetworkInterface) e1.nextElement();
        System.out.print(ni.getName());
        System.out.print(": ");
        Enumeration e2 = ni.getInetAddresses();
        while (e2.hasMoreElements()) {
         InetAddress ia = (InetAddress) e2.nextElement();
         if (ia instanceof Inet6Address)
          continue; // omit IPv6 address
         System.out.print(ia.getHostAddress());
         if (e2.hasMoreElements()) {
          System.out.print(", ");
         }
        }
        System.out.print("\n");
       }
    }
    }
    



    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 
    如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP。
    
    经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问 时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问 ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
    
        于是可得出获得客户端真实IP地址的方法一:
    
    
    public String getRemortIP(HttpServletRequest request) {
      if (request.getHeader("x-forwarded-for") == null) {
       return request.getRemoteAddr();
      }
      return request.getHeader("x-forwarded-for");
     } 
    
    
    可是当我访问  时,返回的IP地址始终是unknown,也并不是如上所示的127.0.0.1 或 192.168.1.110了,而我访问 :2046/index.jsp 时,则能返回客户端的真实IP地址,写了个方法去验证。原因出在了Squid上。squid.conf 的配制文件 forwarded_for 项默认是为on,如果 forwarded_for 设成了 off  则:X-Forwarded-For: unknown
    
        于是可得出获得客户端真实IP地址的方法二:
    
    
    public String getIpAddr(HttpServletRequest request) {
           String ip = request.getHeader("x-forwarded-for");
           if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
               ip = request.getHeader("Proxy-Client-IP");
           }
           if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
               ip = request.getHeader("WL-Proxy-Client-IP");
           }
           if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
               ip = request.getRemoteAddr();
           }
           return ip;
       } 
    
    
        可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串Ip值,究竟哪个才是真正的用户端的真实IP呢?
    
        答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。
    
        如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100用户真实IP为: 192.168.1.110 


    try   {
    InetAddress[]   ia   =   InetAddress.getAllByName(InetAddress.getLocalHost().getHostName());
    for(int   i=0;i <ia.length;i++){
    System.out.print(ia[i].getHostAddress().toString());
    }
    }   catch   (UnknownHostException   ex)   {
    //   TODO   自动生成   catch   块
    ex.printStackTrace();
    }
    
    
    public   String[]   getIpAddress(String   hostname)   throws   SocketException,UnknownHostException   {
    String[]   get   =   null;
    InetAddress[]   inetAddress   =   null;
    if   (new   CommonConvert().isEmpty(hostname))   {hostname   =   "localhost ";}
    inetAddress   =   Inet4Address.getAllByName(hostname.toLowerCase());
    if   (inetAddress.length   >   0   &&   inetAddress   !=   null)   {
    get   =   new   String[inetAddress.length];
    for   (int   i   =   0;i <inetAddress.length;i++)   {
    get[i]   =   inetAddress[i].getHostAddress();
    }
    }
    return   get;
    }

    使用request对象的以下三个方法可以得到相关的信息,不过如果中间有代理服务器的话,则不适用了。以下是API文档中的说明:
     String getRemoteAddr() 
              Returns the Internet Protocol (IP) address of the client or last proxy that sent the request.
     
     String getRemoteHost() 
              Returns the fully qualified name of the client or the last proxy that sent the request. 
    
     int getRemotePort() 
              Returns the Internet Protocol (IP) source port of the client or last proxy that sent the request. 



    展开全文
  • 现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址,需要的朋友可以参考下
  • 以下代码是在学习过程中,网上查到的。如果有版权问题,请联系删帖!!! 在网上找到了两种方法 一种是直接使用 .Net的类,测试后发现比如输入数字 8, 会自动变成 0.0.0.8 而这种格式并非我们所要的。 所有直接使用...
  • ip地址10.1.8.0/24和10.1.9.0/24,下列哪个是正确的汇总网段: 正确答案: C 你的答案: 空 (错误) 10.0.0.0/8 10.1.0.0/16 10.1.8.0/23 10.1.10.0/24 添加笔记 求解答(20) 收藏...
  • (1)主机在配置IP地址时,其正确的子网掩码和默认网关分别是多少? (2)若路由器R在向互联网转发一个由主机192.168.1.5发送、ID=12345、length=500B、DF=1的IP分组时,则该IP分组首部的哪些字段会被修改?如何修改? ...
  • 如果一个人在 Linux 服务器上正确配置了静态地址,那么他/她就可以通过网络远程访问它。在本文中,我们将演示在 RHEL 8 服务器网卡上配置静态 IP 地址的不同方法。 以下是在网卡上配置静态IP的方法: nmcli(命令行...
  • 获取代理IP地址

    万次阅读 2018-06-29 10:36:42
    很多时候,需要用到代理IP。比如在开发爬虫程序的时候,为了反爬,需要使用...从指定的网站抓取代理IP地址并存入数据库all_ip_table中,当前抓取的地址包括: 西刺网站 快代理网站 66代理网站 89代理网站 秘密代理...
  • IP地址转换与域名解析

    千次阅读 2020-02-27 20:57:20
    IP地址转换与域名解析IP地址与端口IP地址转换相关类域名解析代码分析![在这里插入图片描述](https://img-blog.csdnimg.cn/20200227205232196.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10...
  • 如何配置Linux系统的IP地址

    万次阅读 多人点赞 2017-03-20 08:28:08
    如何配置Linux系统的IP地址,使其能够连接局域网甚至外网。其实这并不难,Linux系统网络配置的方法有多种。下面,以VMware虚拟机中的Linux系统为例,进行讲解。我的真实机是Windows系统,网络连接的详细信息如下:已...
  • IP地址的三种表示方式是什么

    千次阅读 2020-10-23 15:06:09
    IP地址的三种表bai示方式是点分十进制、网络字du节序、主机字节序。 域名如zhi“ www.baidu.com”并不是IP地址的表示方式,“dao192.168.0.1”属于点分十进制。 1、点分十进制 点分十进制(Dotted Decimal ...
  • IP地址的表示方法

    千次阅读 2019-08-07 16:15:27
    我们平常所说的IP地址都是指类似于 192.168.0.37 这样的一串数字,但实际上这一串数字只是IP地址主体而已。 IP地址主体 一串32比特的数字,按照8比特(1个字节)为一组分成4组,每组都用十进制值表示,最后以英文...
  • 十六进制表示ip地址的时候两位一个停顿 c2 = 12 * 16 + 2 = 194 2f = 2 * 16 + 15 = 47 14 = 1 * 16 + 4 = 20 81 = 8 * 16 + 1 = 129 19.47.20.129 下面看好了,我这个才是正确的: A类网络的回答IP地址范围为1.0....
  • IP地址与域名的教案

    2009-11-19 14:36:38
    当地公安通过查询电信部门的IP记录找到了发送色情邮件的IP地址……(以下略) 引导学生阅读材料并思考:该市公安局是依据什么来找到犯罪嫌疑人的? 个别学生回答:依据IP地址。 把教学内容转化为具有潜在意义的问题,...
  • 了解IP地址及如何设置IP地址

    千次阅读 2007-05-10 19:57:00
    众所周知,在电话通讯中,电话用户是靠电话号码... 什么是IP地址 所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。 按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Int
  • IP地址详解

    千次阅读 2020-03-27 21:49:17
    一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台...
  • IP地址&端口号&TCP协议&UDP协议

    千次阅读 2018-05-11 13:38:40
    一、IP地址 1.什么是IP地址IP地址是连接在因特网上的主机的标识符 2.IP协议的分类? IP协议有两个版本,分别是IPV4,IPV6 ps:基本上提到IP地址时,不特指的话,都是指IPV4 3.IP地址的大小、格式、分类? ...
  • IP 别名和辅助 IP 地址

    千次阅读 2017-01-25 12:05:13
    概述IP 别名(IP Alias),辅助ip地址(Secondary IP Address)
  • Ceph集群更改IP地址

    千次阅读 2019-04-11 10:12:21
    由于一些原因,有时需要将Ceph集群的IP地址进行更改,以下为更改Ceph集群IP地址的步骤: 1.更改各机器IP地址 2.更改每台机器/etc/hosts文件中的ip地址 3.更改ceph.conf文件中的ip地址,并且同步至集群中的所有...
  • 前几天,研究了一下TP中IP地址定位,着实费了一些时间,现在解决了,分享给大家。IP地址库有点大,去这里下载http://download.csdn.net/detail/man_quan/4636418用于IP地址的定位,解压后的类库文件放入ThinkPHP/...
  • IP地址与MAC地址

    千次阅读 2012-10-17 20:55:19
    1.多播时需要特定的MAC地址,因为在以太网中的2层及以下是不识别IP地址的,只认MAC,所以不需转换成MAC地址 2.一个多播(组播)对应一个MAC,网卡的地址虽然固定,但是,它可以监听到任何MAC的通讯,只要它连接的...
  • 公共IP地址是您的家庭或企业路由器从ISP接收的IP地址。任何可公开访问的网络硬件都需要公共IP地址,例如家庭路由器以及托管网站的服务器。 公共IP地址是插入公共互联网的所有设备的不同之处。每个访问互联网的设备...
  • IP地址的正则表达式

    千次阅读 2018-08-17 15:35:15
    这里讲的是IPv4的地址格式,总长度 32位=4段*8位,每段之间用.分割, 每段都是0-255之间的十进制数值。 将0-255用正则表达式表示,可以分成一下几块来分别考虑: 取值区间 特点 正则写法 可合并的写法 ...
  • 【科普】IP地址详解-你,是谁?(二)

    千次阅读 2017-04-10 11:37:20
    我听见了你的声音 也藏着颗不敢见的心 薛之谦--《我好像在哪见过你》 IP这个单词随着互联网的发达而被人们熟知,...1. IP地址分为有类和无类 1.1 简介 在我们的实现生活IP地址分为有类和无类。 有类(主
  • 在小型网络中,因为计算机数量不多,网络管理员一般采用手工分配IP地址的方法为每台计算机分配静态IP地址,而随着网络不断扩展,应用领域不断扩大,网络在企业中的应用日益普及,发展到中、大型网络,计算机的数量...
  • 获取nginx客户端IP地址

    千次阅读 2018-07-14 16:06:20
    Java request获取客户端ip,各种apach,nginx等代理后依然正确2017年02月22日 17:15:15阅读数:3268在JSP,Java里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的。...
  • IP地址计算详解

    千次阅读 2012-10-31 15:36:48
    IP地址计算详解  (2006-07-05 00:00:33) 转载▼ IP地址与子网掩码 Lion 2005.10.16 14:22--2005.10.23 22:05 QQ: 512601329 一般考试中都会给定一个IP地址和对应的子网掩码,让你计算 1、子网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,279
精华内容 77,711
关键字:

以下哪个ip地址是正确的