Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка строк, нужно из IP убрать точки 
:(
    Опции темы
study
Дата 26.11.2004, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Народ, помогите! Мне нужно из IP адреса убрать точки. Например, чтобы из 123.123.123.123 получилось 123123123123, как это сделать, если можно примерчик, заранее спасибо!
PM MAIL   Вверх
Secandr
Дата 26.11.2004, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 1
Всего: 39



$ip=~s/[.]//


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
study
Дата 26.11.2004, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Secandr, почему-то это код удаляет только первую точку

Код

$ip="123.123.123.123";
print "\n\n$ip";
$ip=~s/[.]//;
print "\n\n$ip";


результат:

123.123.123.123

123123.123.123
PM MAIL   Вверх
dimes
Дата 26.11.2004, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



Код

$ip=~s/\.//g;

PM ICQ   Вверх
chaos
Дата 26.11.2004, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



я бы сделал так
Код

$ip =~ m/(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})/;
if (($1<256 && $1>0)&&($2<256)&&($3<256)&&($4<256)) {
 $ip = "$1$2$3$4";
}

Дабы исключить не ип

PS: Хотя примеры описанные выше куда элегантнне

Это сообщение отредактировал(а) chaos - 26.11.2004, 13:02
PM WWW   Вверх
Secandr
Дата 26.11.2004, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 1
Всего: 39



забыл g


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
study
Дата 26.11.2004, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 20.9.2004

Репутация: нет
Всего: нет



Всем спасибо!!!
PM MAIL   Вверх
dimes
Дата 26.11.2004, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



А теперь, было бы неплохо объяснить зачем ты это делаш...
перевод IP в число делается по другому а тот что сверху он не правильный (eg 12.255.255.255 и 122.55.255.255 )
PM ICQ   Вверх
chaos
Дата 26.11.2004, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(dimes @ 26.11.2004, 14:36)
А теперь, было бы неплохо объяснить зачем ты это делаш...
перевод IP в число делается по другому а тот что сверху он не правильный (eg 12.255.255.255 и 122.55.255.255 )

это ты кому?
PM WWW   Вверх
korob2001
Дата 26.11.2004, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Код

#!/usr/bin/perl -w
use strict;
my $ip = "213.119.214.74";
$ip = join("", split(/\./, $ip));
print $ip;



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
ElectricalStorm
Дата 1.12.2004, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



Код


Преобразовать IP в число:

unpack('N',pack('C4',split(/\./,$ip)))

И обратно:

join('.',unpack('C4',pack('N',$long)))




--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.