


正则表达式 - PHP 匹配内网IP地址的正则如何写 ^192.168.[0-255]+.[0-255]$
正则
想用一条正则来匹配IP地址,这样写^192\.168\.[0-255]+\.[0-255]$
但是是错误的!
正则 []
不是可以限制 [0-9a-z]
却无法限制 [0-255]
吗
回复内容:
正则
想用一条正则来匹配IP地址,这样写^192\.168\.[0-255]+\.[0-255]$
但是是错误的!
正则 []
不是可以限制 [0-9a-z]
却无法限制 [0-255]
吗
服了filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
==============编辑一下,答案跑题了,其实我本来就是想介绍一下这个函数=============
<code>function isPrivateIP($ip) { return !filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE); } </code>
<code> /** * 判断内网IP * * @param $ip * * @returns */ public function isInternalIp($ip) { $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地址 return $ip >> 24 === $net_a || $ip >> 20 === $net_b || $ip >> 16 === $net_c; } </code>
<code>$long = ip2long($ip) if ($long == -1 || $long === FALSE) { echo 'Invalid IP, please try again'; }else{ //if $long在你需要的范围即可。 } </code>
<code>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9] </code>
[0-9]可以,但是不能[0-10]。因为[]
本身就是指的只匹配其中一个。长度只能为1.
……我很好奇你这个的应用场景。
- IP地址需要配合子网掩码辅助确定是否属于同一内网。
- IP地址可能整体表示为一个十进制整数。如果本机装有http服务器,欢迎访问http://2130706433/,有惊喜。
- IPv6也是个问题。
正则不应当用于IP地址的详细验证。有很多问题用正则来解决就是求死之道。就比如正则匹配XML/JSON。我赞成用正则粗略的找出一个“可能是IP地址”的子串,但对于IP地址的进一步验证,推荐题主该怎么来就怎么来。
例如如果仅应对一般格式的IPv4地址,其实建议匹配(?:(\d{1,3})\.)(\d{1,3})
,筛出IP地址的四个数之后再另写程序检查之。
<code>^192\.168\.1?[0-9]{1,2}\.1?[0-9]{1,2}$ </code>
可以用这个验证: http://jex.im/regulex/#!embed=false&flags=&re=%5E(a%7Cb)*%3F%24

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
