我正在创建一个程序,该程序从文件中读取行并尝试连接到随机生成的"代理。"如果连接错误,我尝试做的就是读取行;
它起作用的方式,它实际上运作得很好,我对自己印象深刻。但是,当它保存到文件时,它会使用端口保存ip,如下所示:
143.54.67.231:6543
143.23.567.23:3452
9.234.21.124:5432
我想要做的就是将ip保存到文件中,如下所示:
143.54.67.231
143.23.567.23
9.234.21.124
我尝试了一些事情,比如使用正则表达式,并删除线条(我抬头看起来条纹,它没有做我认为它做的事情),我怎样才能抓住所有的分号前的数字和句号?
来源:
def check_possibles
puts "Testing possible proxies, this will take awhile..".green.bold
IO.read("possible_proxies.txt").each_line do |proxy|
begin
Timeout::timeout(6) do
begin
open("http://#{proxy.chomp}")
end
File.open("true_proxies.txt", "a+") {|s| s.puts(proxy)}
end
rescue Errno::ENETUNREACH, Errno::EADDRNOTAVAIL
File.open("bad_proxies.txt", "a+"){|s| s.puts("Bad IP => #{proxy}")}
rescue Timeout::Error, Errno::ECONNREFUSED
File.open("proxies_to_check.txt", "a+") {|s| s.puts(proxy)}
next
end
end
end
答案 0 :(得分:0)
"143.54.67.231:6543".split(":")[0..-2].join
OR
"143.54.67.231:6543".split(":").first
或者如果您需要RGX,这可能对您有所帮助