我有一臺主機的= http://172.19.242.32:1234/
精確的IP地址了主機URL
我的目標是搶IP只= 172.19.242.32
我試圖
$ip = trim($host,'http://');
$ip = str_replace("/", "",$ip);
$ip = explode(":",$ip);
$ip = $ip[0];
我得到了我的IP爲預計,但我不能這樣做了,因爲它會搞亂IPv6格式。
什麼是替代方法?任何建議?
我有一臺主機的= http://172.19.242.32:1234/
精確的IP地址了主機URL
我的目標是搶IP只= 172.19.242.32
我試圖
$ip = trim($host,'http://');
$ip = str_replace("/", "",$ip);
$ip = explode(":",$ip);
$ip = $ip[0];
我得到了我的IP爲預計,但我不能這樣做了,因爲它會搞亂IPv6格式。
什麼是替代方法?任何建議?
使用parse_url():您可以省略PHP_URL_HOST
以返回所有組件的數組。
<?php
$host = 'http://172.19.242.32:1234/';
echo parse_url($host, PHP_URL_HOST);
返回
172.19.242.32
這將與IPv6協同工作嗎?防爆。 'host = http:// [fd8c :: 11]:1234 /' – ihue
它返回''[fd8c :: 11]''。 – alistaircol
太棒了,那麼這是正確的答案。我會盡快接受。 – ihue
正確的方法是$_SERVER['SERVER_ADDR']
我想?它應該只返回IP
這將返回服務器的IP地址,當前腳本正在執行。 OP要求從某個字符串獲取IP地址。 –
他說他有一個主持人,我把它解釋爲他自己的主人,腳本在哪裏運行。 – junkfoodjunkie
$url="http://172.19.242.32:1234/";
$regexIpAddress = '/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:\/\d{2})?/';
preg_match_all($regexIpAddress, $url, $ip_match);
var_dump($ip_match[0]);
這reg表達式匹配功能將來自任何字符串中提取的IP地址。
太複雜了,\t 請問這個工作與IPv6?防爆。 host = http:// [fd8c :: 11]:1234 /? – ihue
這是IPv4正則表達式匹配。 –
['parse_url()'](http://php.net/manual/en/function.parse-url.php) –
或者正則表達式'/ [\ d。] +(?=:)/' – Mohammad
[在PHP中解析域名的URL]可能的重複(https://stackoverflow.com/questions/276516/parsing-domain-from-url-in-php) – mickmackusa