导入IP地址,以八度为单位



我有一个由IP地址数据包传输等组成的数据集。Octave正在将IP地址转换为浮点值。我如何导入IP地址,因为它是什么数据类型是要使用(字符串?)?

如何在八度音阶中导入它们?GNU Octave有很多加载/保存数据的函数。这取决于你的IP地址(IPv4还是IPv6?)如何存储在你的文件中,哪个功能对你来说是最简单/最好的。

例如,如果你有一个名为"ips.txt"的文件,

192.168.10.4
8.8.8.8
14.32.244.8

你可以用这个来获取一个单元格:

octave:1> f = fopen("ips.txt", "r");
octave:2> l = textscan(f, "%s");
octave:3> fclose(f);
octave:4> 
octave:4> l{1}
ans = 
{
  [1,1] = 192.168.10.4
  [2,1] = 8.8.8.8
  [3,1] = 14.32.244.8
}
octave:5>

但是也许char(fread(..))或fgetl可能更适合你,这取决于你以后想要对导入的ip做什么…

添加:因为您评论说您的IP地址在浮点数列表中,而不是固定方案(固定方案将是例如:"想要的IP位于行开头,即4。列或类似的东西可以用awk处理)我还添加了一个可能性与regexp:

我创建了这个文件ips.txt:

192.168.10.4 some text 3.14 8.8.8.8
other 123.44 14.32.244.8
4.667.2 12.943 127.0.0.1 hello world
用regexp 加载它
f = fopen("ips.txt", "r");
x = char(fread(f));
fclose(f);
[S, E, TE, M, T, NM, SP] = regexp (x', '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}');

等于M:

M = 
{
  [1,1] = 192.168.10.4
  [1,2] = 8.8.8.8
  [1,3] = 14.32.244.8
  [1,4] = 127.0.0.1
}

——安迪。

最新更新