php随机生成国内ip地址

获得一个国家所有ip段,随机生成国内ip地址的缩水实现。
注意:  $ip_long数组中后5个值在64位系统中可能是错误的(下面代码中  $ip_long 数组的后五个值在32位系统中为负数,64位系统中为正数,前五个值在64位系统中也可能有错误)

32位系统
echo ip2long(“172.16.1.63″);
结果 -1408237249
64位操作系统
echo ip2long(“172.16.1.63″);

来源:http://www.liangkun.net/archives/681.html

所有ip地址网段下载
http://www.ipaddresslocation.org/ip_ranges/get_ranges.php

缩水随机生成国内ip地址
总共有1600多个网段,只取了其中10个确定是国内的网段
使用了2个php函数

ip2long($ip)把ip转为int

long2ip($int_ip)把int转回ip

代码:

    $ip_long = array(

            array(‘607649792‘, ‘608174079‘), //36.56.0.0-36.63.255.255

            array(‘1038614528‘, ‘1039007743‘), //61.232.0.0-61.237.255.255

            array(‘1783627776‘, ‘1784676351‘), //106.80.0.0-106.95.255.255

            array(‘2035023872‘, ‘2035154943‘), //121.76.0.0-121.77.255.255

            array(‘2078801920‘, ‘2079064063‘), //123.232.0.0-123.235.255.255

            array(‘-1950089216‘, ‘-1948778497‘), //139.196.0.0-139.215.255.255

            array(‘-1425539072‘, ‘-1425014785‘), //171.8.0.0-171.15.255.255

            array(‘-1236271104‘, ‘-1235419137‘), //182.80.0.0-182.92.255.255

            array(‘-770113536‘, ‘-768606209‘), //210.25.0.0-210.47.255.255

            array(‘-569376768‘, ‘-564133889‘), //222.16.0.0-222.95.255.255

        );

        $rand_key = mt_rand(0, 9);

        $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));

  

时间: 2024-12-26 20:05:24

php随机生成国内ip地址的相关文章

C# 随机获取国内IP

调用getRandomIp()方法即可Framework3.5 +使用LINQ public string getRandomIp() { /* int[][] 这个叫交错数组,白话文就是数组的数组. 初始化的方法: int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; 当然也可以使用{}初始化器初始化 int[][] numbers = { new int[] {2,3,4}, new int[]

随机生成临时车牌号

///<summary> ///生成随机临时车牌字符串 ///</summary> ///<param name="length">目标字符串的长度</param> ///<param name="useNum">是否包含数字</param> ///<param name="useLow">是否包含小写字母</param> ///<param n

编写iptables模块实现不连续IP地址的DNAT-POOL

1.背景 <路由应用-使用路由实现负载流量均衡>的第3.3节,并没有给出如何配置一个pool,那是因为在Linux 2.6.10之上,已经不再支持配置不连续IP地址的pool了,如果看iptables的man手册,将会得到以下信息: In  Kernels up to 2.6.10 you can add several --to-destination options. For those kernels, if you specify more than one destination 

python实现个人信息随机生成

""" 生成随机姓名.电话号码.身份证号.性别.应行卡号.邮箱 """ import random from firstname import first_name from langconv import * from province_id import province_id from phone_number import phone_number # from langconv import Converter # 随机生成姓名 def

生成签名,随机字符串,XML转为数组,数组转XML,json封装,获取IP地址

/* * ******生成签名********* */private function getSign($params){ ksort($params); //将参数数组按照参数名ASCII码从小到大排序 foreach ($params as $key => $item) { if (!empty($item)) { //剔除参数值为空的参数 $newArr[] = $key . '=' . $item; // 整合新的参数数组 } } $stringA = implode("&

Python根据数量生成正确顺序的ip地址

一个简单的需求,一个简单的脚本. 从一个ip开始,按照指定的数量,生成正确的ip地址. #!/usr/bin/env python ## encoding: utf-8 import os def getip(ip, count): count = int(count) ip2 = int(ip.split('.')[-2]) ip1 = int(ip.split('.')[-1]) ip_before = '%s.%s' % (ip.split('.')[0], ip.split('.')[1

Linux下如何批量生成IP地址段?

Linux下如何批量生成IP地址段? for num in `echo 192.168.2.{1..254}`;do echo $num >> ip_list;done 说明:定义一个名为num的变量,变量内容为echo 192.168.2.{1..254},然后输出到ip_list这个文件下面 生成文件的截图

c#生成注册码的两种方法(mac地址与IP地址)

using System; using System.Management; using System.Security.Cryptography; using System.IO; using System.Collections.Generic; using System.Text; namespace xingming_reg { class Program { static void Main(string[] args) { bool sucsess = false; string c

搭建DHCP服务实现动态分配IP地址【详解】

搭建DHCP服务实现动态分配IP地址   一:实验内容 DHCP服务器工作原理 使用DHCP为局域网中的机器分配IP地址 使用DHCP为服务器分配固定IP地址   二:实验环境: 服务端:xuegod63  IP:192.168.1.70 客户端:RHEL-6.2-64-71  IP:192.168.1.71 客户端:RHEL-6.2-64-72  IP:192.168.1.72   三:实验步骤 第一块:概述 1:DHCP服务概述: 名称:DHCP  - Dynamic Host Config