Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
TrackIDentify
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Опросы
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

GPRS - internet, секреты и решения  : Мобилы и Internet : Статьи : Для Sony Ericsson патчи эльфы моддинг прошивка

Для Sony Ericsson : Статьи : Мобилы и Internet : GPRS - internet, секреты и решения
20.6.08 02:21 | Автор: OXOTHuK | Рейтинг: 6.17 (6) Оценить | Хитов 2636

Технологией GPRS уже никого не удивить. Многие операторы предоставляют эту услугу даже в сравнительно небольших городах. Не брезгая маленькими скоростями, сетяне юзают GPRS даже будучи подключенными к выделенной линии (например, по технологии Ethernet).
Зачем? Все просто: в тестовом периоде компания дает право пользоваться услугой определенное время абсолютно на халяву :). Даже если доступ платный, цены за мегабайт могут быть ниже, чем за мег по быстрому езернету. Варезникам при этом ничего не остается, как лить через GPRS драгоценный софт...
Действительно, так и происходит: на ночь ставится закачка большого количества софта. К чему это я? Просто у некоторых людей начинаются трудности в совмещении двух параллельных соединений. Особенно под Windows. Спешу разрешить эту проблему в этой статье.



Сначала следует определиться, что человек желает сделать, подключившись к "жопорезу". Как правило, цель - слить какую-нибудь софтину с буржуйского фтп (либо поюзать честно спионеренный шелл без "свечения" статического IP-адреса). Если это так - совсем необязательно использовать общий шлюз GPRS.
Перед подключением идем в свойства сетевого соединения (вкладка "Сеть\), выбираем протокол TCP/IP, дополнительно. Снимаем галочку с "Использование общего шлюза". Теперь можно подключаться.

Чего мы добились? После подключения к GPRS, никакие соединения не прервутся, ибо дефолтовый шлюз останется на месте (шлюз локальной сети). В противном случае, гейт будет заменен на "жопорезный" и весь трафик стремительно потечет через него.

Далее необходимо прописывать маршрут к хосту, куда мы хотим обратиться через интерфейс GPRS. Это можно сделать командой route add host твой_GPRS_IP_ADDRESS. Но юзать такую длинную строку гиморно, и я решил написать Perl-скрипт, который облегчит тебе эту задачу. Учти, что для корректной работы у тебя должен быть установлен ActivePerl.

Итак, поехали. Вот код скрипта, который очень просто добавляет/удаляет роуты даже на hostname (Винда не переваривает хостнэймы, ее интересуют только IP :)).

#!/usr/bin/perl $debug=0; ## По дефолту мусор в STDERR вырублен ;)
exit unless $ARGV[0]; ## Выходим, если нет аргументов
# ADD/DEL route script for PPP interface use Socket; ## Юзаем модуль Socket.pm для резолва адресов
chomp($host = $ARGV[0]); ## Выцепляем интересующий нас хост из входных параметров
$mask = '172'; ## Первая часть IP-адреса. У каждого оператора своя. Определяется экспериментально :).
if ($host eq "-d\) { ## Если параметр оказался -d
chomp($host = $ARGV[1]); ## Значит следующий параметр (хост) необходимо удалить из таблицы маршрутов
$peer = get_host_ip($host); ## Резолвим хост
$action = "route delete $peer"; ## И формируем команду на удаление
print "$action" if $debug; ## Мусорим в консоль, если включен дебаг
system($action); ## И выполним команду
exit; ## Корректно выходим
}
$myip = get_my_ip(); ## Если маршрут следует добавить - определяем собственный IP на PPP-интерфейсе
$peer = get_host_ip($host); ## А также IP желаемого хоста
$action = "route add $peer $myip"; ## Формируем команду
print "$action" if $debug; ## Мусорим :)
system($action); ## Выполним поставленную задачу
sub get_host_ip { ## Небольшая процедурка для резолва хоста в IP-адрес
my ($ip);
my ($host) = @_; ## Объявление локальной переменной $ip и параметра процедуры $host.
$ip = gethostbyname($host); ## Резолвим хост в IP (посредством метода в Socket.pm)
$ip = inet_ntoa($ip); ## Превращаем переменную в читабельный вид
return $ip ## И возвращаем ее в главный модуль
}
sub get_my_ip { ## Процедура для определения собственного адреса на PPP-интерфейсе
my ($ip_string,$myip);
$ip_string = `ipconfig | find \\"$mask\\.\\"`; ## Выполним команду ipconfig с фильтром на часть искомого IP-адреса
(undef,$myip)=split(":",$ip_string); ## Сплитуем отфильтрованную строку по символу \":\"
substr($myip,0,1) = ''; ## Отрезаем от адреса первый символ
$myip=~s/\\r|\\n//g; ## Очищаем его от мусора
return $myip ## И возвращаем в главный модуль
}

В последней процедуре ты видишь сплит и обрезание :) символа. Это делается из-за того, что сырая строка выглядит следующим образом: "IP Address : xxx.xxx.xxx.xxx". После сплита второй параметр должен быть обрезан, чтобы хоть немного напоминать сетевой адресок. Что и было проделано.

Теперь запихивай скрипт в c:\\windows и обзывай route.pl. Все! С этого момента ты можешь юзать команду "route.pl hostname", после чего хост будет занесен в таблицу маршрутов. Все запросы на этот адрес будут проходить через GPRS-соединение, как ты и хотел. Не веришь? Пропингуй адрес и увидишь большую потерю пакетов и громадное время прохождения пакета :).

В Пингвине все проще. Нужно добавить в /etc/ppp/options параметр "nodefaultroute" (аналог отключения галки в свойствах PPP-соединения), а в файл /etc/ppp/ip-up.local прописать строку вида: "echo $IPREMOTE >/root/gprs".
Затем немножко модифицируй выше написанный скрипт на предмет чтения IP шлюза из файла /root/gprs.
Также не забудь подправить синтаксис команды route и убить резолв (умный пингвин умеет кушать hostnames при выполнении /sbin/route).

Все! Остальное можно не менять :). 


 
Оценить Для Sony Ericsson : Статьи : Мобилы и Internet : GPRS - internet, секреты и решения
  • Не голосуйте за одну и ту же статью более одного раза.
  • Оценка по десятибальной шкале. 1 - Минимум, 10 - Максимум.
  • Будте объективны!
  • Не голосуйте за собственную статью.
    12345678910
  • Родственные ссылки

    MyArticles 0.5 beta for RUNCMS: by RunCms.ru

    Главная Новости Статьи Файлы Патчи Форум Опросы PDA
    - Генерация страницы: 0.1 секунд | 7 Запросов | HTML: 26.15 КБ -