[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Узнать белый IP



On Fri, Mar 13, 2009 at 03:47:51PM +0300, Mironov Pavel wrote:
> On Fri, Mar 13, 2009 at 11:12:34AM +0300, DamirX wrote:
> > Hi, All!
> > Вопрос немного глуповатый.
> > Как на машине за натом узнать белый адрес. Что-нибудь экстремально
> > простое, чтоб не парсить http://2ip.ru/  Консольное.
> > 
> > --
> > DamirX
> 
> Пишешь
> elinks https://check.torproject.org/?lang=ru 
> и вот твой ip
> 

Да, что-то "очень умное" я написал. Что значит тяпцица :)
Вот пара вариантов. Кто сделает короче?
-- 
С уважением,
П.Миронов
 
   1 #!/usr/bin/perl -w
   2 #
   3 #
   4 use strict;
   5 use warnings;
   6
   7 my $url = "https://check.torproject.org/?lang=ru";;
   8 my $url2 = "http://myip.ru";;
   9 my $reg_ip = '((\d{1,2}|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d{2}|2[0-4]\d{1}|25[0-5])';
  10
  11 ### в данном случае достаточно этого варианта
  12 #
  13 my @fc = `curl -s $url`;
  14 for (@fc) {
  15     if (/($reg_ip)\D+?/) {
  16         print $1 , "\n";
  17     }
  18 }
  19
  20 print "------------------\n";
  21
  22 ### второй вариант достает все ip из файла
  23 #
  24 my @fc2 = "92.76.190.222 cc vvv nn 92.76.190.235    fghdu  92.76.190.236";
  25 # my @fc2 = `curl -s $url2`;
  26 my @list_ip;
  27  for (@fc2) {
  28     while (/.*?($reg_ip)(\D|$)+?/g) {
  29         @list_ip = (@list_ip, $1);
  30     }
  31 }
  32
  33 print "$_\n" for @list_ip;
  34
 


Reply to: