# $ip
## $ip
客户端的 IP 地址,格式为:202.106.0.20 。
在开启 CDN 后,它会获取 CDN 转发过来的 IP 。
【定义】 文件:xiunophp/misc.func.php:
```
<pre class="calibre11">```
$ip = ip();
```
```
【用例】
```
<pre class="calibre11">```
<?php
include './xiunophp/xiunophp.php';
echo $ip; // 127.0.0.1
?>
```
```
【ip()】
```
<pre class="calibre11">```
// 不安全的获取 IP 方式,在开启 CDN 的时候,如果被人猜到真实 IP,则可以伪造。
function ip() {
global $conf;
$ip = '127.0.0.1';
if(empty($conf['cdn_on'])) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
$ip = $_SERVER['HTTP_CDN_SRC_IP'];
} elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$arr = array_filter(explode(',', $ip));
$ip = end($arr);
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
}
return long2ip(ip2long($ip));
}
```
```
- XiunoPHP 入门
- 什么是 XiunoPHP?
- 关于 URL 格式
- 编码规范
- 全局变量
- $starttime
- $time
- $conf
- $ip
- $longip
- $ajax
- $method
- $db
- $cache
- $errno
- $errstr
- 数据库函数
- DB 配置
- db_insert()
- db_create()
- db_replace()
- db_update()
- db_delete()
- db_find_one()
- db_find()
- db_count()
- db_maxid()
- db_connect()
- db_truncate()
- db_sql_find()
- db_sql_find_one()
- db_exec()
- db_new()
- db_close()
- 缓存函数
- CACHE 配置
- cache_set()
- cache_get()
- cache_delete()
- cache_truncate()
- cache_new()
- 数组增强
- array_value()
- array_filter_empty()
- array_addslashes()
- array_stripslashes()
- array_htmlspecialchars()
- array_trim()
- array_diff_value()
- array_assoc_slice()
- arrlist_multisort()
- arrlist_cond_orderby()
- arrlist_key_values()
- arrlist_values()
- arrlist_change_key()
- arrlist_chunk()
- 杂项函数
- xn_strlen()
- xn_substr()
- xn_urlencode()
- xn_urldecode()
- xn_json_encode()
- xn_json_decode()
- xn_encrypt()
- xn_decrypt()
- xn_message()
- xn_error()
- xn_log()
- xn_txt_to_html()
- xn_rand()
- xn_is_writable()
- humandate()
- humannumber()
- humansize()
- param()
- lang()
- url()
- pagination()
- is_robot()
- http_get()
- http_post()
- https_get()
- https_post()
- http_multi_get()
- file_replace_var()
- file_get_contents_try()
- file_put_contents_try()
- in_string()
- file_ext()
- file_pre()
- file_name()
- http_url_path()
- glob_recursive()
- rmdir_recusive()
- copy_recusive()
- _GET() _POST() _COOKIE() ...