求具体的方法

解决方案 »

  1.   

    首先,以目前的IP协议来说(不 是IPv6),IP地址的范围一个32位的整数,也可以表示为 从 0.0.0.0 - 255.255.255.255 ,当然这其中有些IP属于特殊用途比如 全0的和全1的。这样 全世界所有IP 一共有 4294967296 个
    在MYSQL中存储一个32位的无符号整数可以用 INT UNSIGNED. 占4个字节。所以所占磁盘容量约为 2^32 * 4 Bytes = 17179869184 = 17.2 G
      

  2.   

    生成这些IP地址在MYSQL中很容易,写个循环 x 从 0 to 4294967295, 然后通过MYSQL的函数 INET_NTOA(x) 即可得到IP地址的一般表现形式。
    这个你可以通过你自己的delphi 来实现,也可以在MYSQL中写个存储过程来实现。
    mysql> SELECT INET_NTOA(3520061480);
    +-----------------------+
    | INET_NTOA(3520061480) |
    +-----------------------+
    | 209.207.224.40        |
    +-----------------------+
    1 row in set (0.00 sec)mysql>
      

  3.   

    获取对方ip的方法package text;import javax.servlet.http.HttpServletRequest; public class Ip { 
    public String getIP(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(); 
           System.out.println(ip);
       } 
       String[] arg=ip.split(","); 
       return arg[0]; 
       }