簡體   English   中英

獲取最后一個網段的IP地址

[英]Get last segment IP address

在Bash中,我可以通過以下方式獲取IP地址的最后一段:

$ A="10.10.10.46"
$ echo ${A##*.}
46

在Perl中可以輕松完成類似的事情嗎?

您可以通過將數字匹配到字符串的末尾來獲取最后一個八位位組,

my $A = "10.10.10.46";
print $1 if $A =~ /([0-9]+)$/;

或通過分割點字符並選擇最后一個列表元素,

my $num = ( split /[.]/, $A )[-1];

在Perl中:

my $a = "10.10.10.46";
print $1 if $a =~ /\.(\d{1,3})$/;

此正則表達式將匹配最后1到3位數字,並確保它們前面有一個點。

在perl中使用substr

my $str1 = "10.10.10.46";
$out1 = substr($str1, -2);

現在假設您有兩位以上的數字;

在最后一個點之后獲取所有內容

(?<=\.)\d+$

例如,您可以在perl使用它:

my $A="10.10.10.46";
my @d = split(/\./, $A);
print $d[-1];

這將始終基於打印最后一個元素. 作為分隔符。 它確實基於分割字符串. 然后打印后續數組的最后一個元素。

您想將所有數字都放在字符串的末尾,因此要求。

($n) = $ip =~ /(\d+)$/;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM