我正在尝试在python 2.7中操纵 tcpdump 的输出。我要做的是删除 IP 地址的端口部分。
例如,如果输入字符串是
192.168.0.50.XXXX
我如何在第4个期后删除所有内容,以便输出
192.168.0.50
我已经考虑过使用字符串的长度做一些事情,唯一的事情是端口长度可以是我的例子中的1-5位数字(0-9999)。
我能想到的唯一一件事就是用#周期做一些事情,因为普通IP 只包含 3 和带有端口附件有 4 。
答案 0 :(得分:3)
使用rsplit()
获取最干净或最简单的路线:
s = "192.168.0.50.XXXX"
s = s.rsplit('.',1)[0]
<强>输出强>:
192.168.0.50
从右侧断开给定的字符串后返回字符串列表 一边是指定的分隔符。
答案 1 :(得分:2)
试试这个
print('.'.join("192.168.0.50.XXXX".split('.')[:-1])) #or [:4], depending on what you want. To just remove the port, the -1 should work.
答案 2 :(得分:2)
使用句点作为分隔符将字符串拆分为组。取前四组并再次将它们放在一起,使用与分隔符相同的时间段:
ip = "192.168.0.50.XXXX"
".".join(ip.split(".")[:4])
#'192.168.0.50'
答案 3 :(得分:0)
我使用拆分和加入功能执行此操作。
这是一步一步的过程:
ip="192.168.0.50.XXXX"
拆分字符串,并使用定义的分隔符添加数据到字符串数组。
sp=ip.split(".")
#['192', '168', '0', '50', 'XXXX']
选择除最后项
之外的数组中的所有内容sp=sp[:-1]
#['192', '168', '0', '50']
然后使用加入功能
加入这些元素".".join(sp)
#'192.168.0.50'