Is $_SERVER['REMOTE_ADDR'] always isset()?

2019-01-27 17:41发布

I want to store ip2logn($_SERVER['REMOTE_ADDR']) values in the db for some reason.

Practically, as I see, $_SERVER['REMOTE_ADDR'] always has a value. Could anybody confirm it is always set for any user and can't be not set by any reason?

The reason I ask it is to be sure I should choose NOT NULL instead of DEFAULT NULL for the column in MySQL Table.

So, I can store ipaddressvarchar(15) NOT NULL (yes, NOT null) or ip2longaddress int(11) NOT NULL, and the second option is, as I understand, the most preferable.

Thank you.

4条回答
对你真心纯属浪费
2楼-- · 2019-01-27 18:04

$_SERVER vars are ALWAYS SET. Well, unless you have some odd php setup.

查看更多
混吃等死
3楼-- · 2019-01-27 18:05

$_SERVER['REMOTE_ADDR'] is always set even if you are working on localhost and can't be unset except you programmatically removed it And if you saved it in INT there would be no dots so you should save it as varchar

查看更多
欢心
4楼-- · 2019-01-27 18:18

Could anybody confirm it is always set for any user

yes. I can.

查看更多
我想做一个坏孩纸
5楼-- · 2019-01-27 18:24

It will only be set if you're running the script through a webserver. If you're running PHP in CLI (command line) mode, REMOTE_ADDR will not be set, as there is no remote address for a command line script.

查看更多
登录 后发表回答