【问题标题】:ip address to NSAP IDip 地址到 NSAP ID
【发布时间】:2015-01-14 21:16:29
【问题描述】:

谁能帮我想出一个将 IP 地址转换为 NSAP ID 的 perl 脚本或 javascript?我有一个表格供用户填写并带有 IP 地址,并希望自动填充 NSAP 部分。

这些是一些要求

示例: 192.168.1.1

将每个八位字节填充为 3 个字符 192.168.001.001

改为 4 人一组 1921.6800.1001

在末尾添加 .00 1921.6800.1001.00

谢谢

【问题讨论】:

  • 向我们展示您迄今为止所做的尝试。正如这个问题所代表的那样,它非常愚蠢地问“请给我代码”。就目前而言,它可能会被关闭。尝试用你的语言来处理这个过程,而不是把它翻译成代码。在点上分割ip,如果每个部分少于3个字符,则用前导0填充,添加点等。

标签: perl ip trim


【解决方案1】:

NSAP ID 或 End System ID 是一个 6 字节字段,通常以点十进制表示法表示为 xxxx.xxxx.xxxx。最后添加的两个零是 NSAP 选择器 (NSEL),它标识网络服务用户,在您的情况下是网络实体标题 (NET) 或系统本身的网络层。因此,从技术上讲,您所做的不是 NSAP ID,而是 NSAP 地址的最后一部分。

下面是一个 perl 脚本,它获取 IP 地址 ($ip) 并执行您在问题中解释的内容并打印出来。

my $tmp = "";
foreach my $part (split('\.', $ip)){
  $tmp = $tmp . sprintf("%03s", $part);
}
$tmp =~ s/(.{4})/$1./g;
print $tmp . "00";

如果您要在网站上以表单的形式使用它,用 javascript 编写它可能更容易,这样您就可以立即将其显示给用户。

【讨论】:

  • 感谢您写这篇文章,我同意,我认为使用 JS 会更好。
猜你喜欢
  • 2021-10-25
  • 1970-01-01
  • 2021-12-05
  • 2017-07-22
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多