Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Определение OS УДАЛЕННОГО компьютера   Найти похожие ветки 

 
Maxim   (2004-08-15 11:54) [0]

Господа, подскажите пожалуйста каким образом с помощью стандартных средств дельфи возможно определить OS какого либо компьютера в локальной сети. Хотя бы, если на мгновение представить что есть только WinOS, а nix не в счет :)


 
KOMATO3   (2004-08-15 15:11) [1]

По открытып портам


 
Maxim   (2004-08-15 18:28) [2]

По подробнее можно пожалуйста?


 
Мастер ©   (2004-08-15 18:34) [3]

>Maxim   (15.08.04 18:28) [2]

По подробнее можно пожалуйста?

А можно узнать, для чего такое нужно?


 
Maxim   (2004-08-15 18:56) [4]

это уже вопрос на вопрос.... :)


 
DeadMeat ©   (2004-08-15 19:21) [5]


> это уже вопрос на вопрос.... :)

Ну и что?? ;)

---
...Death Is Only The Begining...


 
Maxim   (2004-08-15 22:41) [6]

Хм, глупо как то получается. Я спрашиваю вас уважаемые, а вы спрашиваете меня. Как уже понятно - не кто не может дать ответа. И вместо обсуждения темы,  идет обсуждение таких вопросов как: "зачем тебе?", "и что ты пишешь?"

Я просто хочу понять как реализовать определение УДАЛЕННОЙ OS (хочу заметить, что мне не нужен материл о локальном определение)
А как уж это можно использовать...Это бесконечная тема.
Например в скайнере LAN или скайнере не уязвимостей. Не важно же это.


 
Мастер ©   (2004-08-15 23:37) [7]

Можешь быть уверен - хакерские технологии тебе здесь описывать не будут.


 
DeadMeat ©   (2004-08-15 23:43) [8]

Нуу... Ответ тебе уже дали.
Ещё вариантов два:
1) Поставить туда своего клиента
2) Послать ping и проанализировать ответ, вплоть до разбора заголовка

---
...Death Is Only The Begining...


 
Maxim   (2004-08-15 23:59) [9]

МАСТЕР, ну я вам про корову, а вы мне сейчас про слона. Хакерские технологии тут не причём.

DeadMeat, этот способ я уже продумывал. А лечге способа нет? Может есть какие небудь уже готовые компоненты для этого :)

В любом случае спасибо за внимание.


 
False_Delirium ©   (2004-08-16 00:10) [10]

Maxim   на void.ru описаны методы.


 
simpson ©   (2004-08-16 10:14) [11]

NetServerGetInfo не подойдет?


 
PL   (2004-08-16 10:43) [12]

Вы уж извините, но причем тут хакерские технологии...

куча софта по работе с сетью, причем легального и профессионального позволяет посмотреть, что за ОС установлена на удаленном компе, сколько она работает и т.д.

Я вот честно признаюсь, что не знаю, как это сделать, но тоже очень хотел бы узнать


 
Polevi ©   (2004-08-16 18:39) [13]

а где и за какую цену куплена OS на удаленном компьютере как можно узнать ?
подскажите компонент plz


 
VMcL ©   (2004-08-16 19:02) [14]

>>Polevi ©  (16.08.04 18:39) [13]

Есть. Называется TTaxPolice.


 
Polevi ©   (2004-08-16 20:09) [15]

черт, лишний раз убеждаюсь что все уже написано до меня


 
Rouse_ ©   (2004-08-16 20:38) [16]

Блин ну и поразвели тут флейма :)

NetServerGetInfo +
typedef struct _SERVER_INFO_102 {
   DWORD     sv102_platform_id;
   LPTSTR    sv102_name;
   DWORD     sv102_version_major;
   DWORD     sv102_version_minor;
   DWORD     sv102_type;
   LPTSTR    sv102_comment;
   DWORD     sv102_users;
   LONG      sv102_disc;
   BOOL      sv102_hidden;
   DWORD     sv102_announce;
   DWORD     sv102_anndelta;
   LPTSTR    sv102_userpath;
} SERVER_INFO_102, *PSERVER_INFO_102, *LPSERVER_INFO_102;


 
Мастер ©   (2004-08-17 00:04) [17]

>Maxim   (15.08.04 22:41) [6]

...Не важно же это...
Да нет, важно это.

>PL   (16.08.04 10:43) [12]
куча софта по работе с сетью, причем легального и профессионального позволяет посмотреть, что за ОС установлена на удаленном компе, сколько она работает и т.д.

Например?


 
Rouse_ ©   (2004-08-17 09:16) [18]

> [17] Мастер ©   (17.08.04 00:04)
Например
http://www.lantricks.com/lanspy/index.php

Кстати используется вышеприведенная функция...


 
Мастер ©   (2004-08-17 13:24) [19]

>Rouse_ ©   (17.08.04 09:16) [18]
Проверил LanSpy хост www.delphimaster.ru. ОС не определяется.

Без использования "левых" технологий ни тип, ни версия системы не определяется, если нет спец. сервисов и легальных программ, которые могут вернуть описание.


 
Rouse_ ©   (2004-08-17 14:02) [20]

> [19] Мастер ©   (17.08.04 13:24)
А если постановку вопроса прочитать?

> определить OS какого либо компьютера в локальной сети. Хотя
> бы, если на мгновение представить что есть только WinOS,
> а nix не в счет :)


Тем более www.delphimaster.ru это виртуальный сервер...


 
Дмитрий Ботвин   (2004-08-17 15:15) [21]

Я писал как-то, вот примерно так:

type
 //Для получения версии ОС
 TOSInfo = record
    wki100_platform_id: DWord;
    wki100_computername: PWideChar;
    wki100_langroup: PWideChar;
    wki100_ver_major: DWord;
    wki100_ver_minor: DWord;
 end;

//Получение версии ОС по имени компа
function GetOSVersions(HostName: WideString): TOSInfo;
 var Info: Pointer;
 begin
   Info:=nil;
   NetWkstaGetInfo(PWideChar(HostName),100,Info);
   if Info<>nil then Result:=TOSInfo(info^)
   else
      begin
         Result.wki100_ver_major:=DWord(0);
         Result.wki100_ver_minor:=DWord(0);
         Result.wki100_platform_id:=DWord(0);
      end;
 end;

//Дешифровка версии ОС
function DecodeVersions(InfoOS: TOSInfo): String;
 begin
   if InfoOS.wki100_ver_major=0 then Result:="";
   case InfoOS.wki100_ver_major of
     3: Result:="Windows NT";
     4: case InfoOS.wki100_ver_minor of
         0: if InfoOS.wki100_platform_id = VER_PLATFORM_WIN32_NT then Result:="Windows NT"
            else Result:="Windows NT";
         10: Result:="Windows 9X";
         90: Result:="Windows ME";
        end;
     5: case InfoOS.wki100_ver_minor of
         0: Result:="Windows 2000";
         1: Result:="Windows XP";
        end;
   end;
 end;

Пример вызова: DecodeVersions(GetOSVersions(Computer.Text));


 
Rouse_ ©   (2004-08-17 20:57) [22]

> [21] Дмитрий Ботвин   (17.08.04 15:15)
Тоже хороший пример, их можно написать несколько вариантов, так как MS видимо перестраховалась и выдала на бочку несколько вариантов функций которые могут вернуть в том числе и эту информацию (я уж не говорю о том количестве структур которые они понаплодили :)


 
Rouse_ ©   (2004-08-17 21:02) [23]

Хех, хотя с названием "хороший пример" я явно переборщил, налицо явный Memory Leak
Не вызван NetApiBufferFree для Info

:)


 
Дмитрий Ботвин   (2004-08-18 07:44) [24]

Rouse_ если посмотришь в хелп, то увидишь, что для NetWkstaGetInfo вызывать NetApiBufferFree не надо :-)))
В 7-м дельфине если вызвать NetApiBufferFree будет вываливаться
ошибка. Я с этим уже сталкивался, поэтому и не написал её....


 
Rouse_ ©   (2004-08-18 09:20) [25]

Какойто не правильный у тебя хелп :)
Вот у меня хелп правильный: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/netmgmt/netwkstagetinfo.asp

bufptr
[out] Pointer to the buffer that receives the data. The format of this data depends on the value of the level parameter. This buffer is allocated by the system and must be freed using the NetApiBufferFree function. For more information, see Network Management Function Buffers and Network Management Function Buffer Lengths.


 
Rouse_ ©   (2004-08-18 09:22) [26]

А валится скорее из-за неправильного объявления функций...


 
Rouse_ ©   (2004-08-18 09:49) [27]

Вот тебе исправленный вариант того что ты делал:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

 PWkstaInfo100 = ^TWkstaInfo100;
 _WKSTA_INFO_100 = record
   wki100_platform_id: DWORD;
   wki100_computername: LPWSTR;
   wki100_langroup: LPWSTR;
   wki100_ver_major: DWORD;
   wki100_ver_minor: DWORD;
 end;
 {$EXTERNALSYM _WKSTA_INFO_100}
 TWkstaInfo100 = _WKSTA_INFO_100;

 function NetWkstaGetInfo(servername: LPWSTR; level: DWORD;
   var bufptr: PWkstaInfo100): DWORD; stdcall; external "NETAPI32.DLL";

 function NetApiBufferFree(Buffer: Pointer): DWORD;
   stdcall; external "NETAPI32.DLL";

var
 Form1: TForm1;

implementation

{$R *.dfm}

//&#207;&#238;&#235;&#243;&#247;&#229;&#237;&#232;&#229; &#226;&#229;&#240;&#241;&#232;&#232; &#206;&#209; &#239;&#238; &#232;&#236;&#229;&#237;&#232; &#234;&#238;&#236;&#239;&#224;
function GetOSVersions(HostName: WideString): TWkstaInfo100;
var Info: PWkstaInfo100;
begin
 NetWkstaGetInfo(PWideChar(HostName), 100, Info);
 try
   if Info <> nil then
     Result := info^
   else
   begin
     Result.wki100_ver_major :=DWord(0);
     Result.wki100_ver_minor :=DWord(0);
     Result.wki100_platform_id :=DWord(0);
   end;
 finally
   NetApiBufferFree(Info);
 end;
end;

//&#196;&#229;&#248;&#232;&#244;&#240;&#238;&#226;&#234;&#224; &#226;&#229;&#240;&#241;&#232;&#232; &#206;&#209;
function DecodeVersions(InfoOS: TWkstaInfo100): String;
begin
  if InfoOS.wki100_ver_major=0 then Result:="";
  case InfoOS.wki100_ver_major of
    3: Result:="Windows NT";
    4: case InfoOS.wki100_ver_minor of
        0: if InfoOS.wki100_platform_id = VER_PLATFORM_WIN32_NT then Result:="Windows NT"
           else Result:="Windows NT";
        10: Result:="Windows 9X";
        90: Result:="Windows ME";
       end;
    5: case InfoOS.wki100_ver_minor of
        0: Result:="Windows 2000";
        1: Result:="Windows XP";
       end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := DecodeVersions(GetOSVersions("\\dimson"));
end;

end.


 
Rouse_ ©   (2004-08-18 09:58) [28]

Кстати действительно в справке по WinSDK дельфевой об этом ничего не сказано, поэтому мой совет, все что касаемо АПИ лучше смотреть в первоисточнике, тобишь MSDN. По крайней мере это избавит тебя от многих несуразностей... :)


 
Rouse_ ©   (2004-08-18 10:03) [29]

Аааааа, вот как тут все хитро :)))))

The NetApiBufferFree function frees the memory that NetApiBufferAllocate allocates. Use this function to free the memory that other LAN Manager functions return.

Т.е. тебе нужно прочитать весь хелт по LAN Manager functions чтобы дойти до этого момента, где сказано что освобождать всетаки нужно. Браво составителям данной справки :) (Блин я тупею :)


 
VMcL ©   (2004-08-18 11:48) [30]

>>Rouse_ ©  (18.08.04 10:03) [29]

>Т.е. тебе нужно прочитать весь хелт по LAN Manager functions чтобы дойти до этого момента, где сказано что освобождать всетаки нужно. Браво составителям данной справки :) (Блин я тупею :)

"Вот уроды!" © сам знаешь :-)


 
Rouse_ ©   (2004-08-18 11:50) [31]

> [30] VMcL ©   (18.08.04 11:48)
:))


 
Piter ©   (2004-08-18 23:51) [32]

Ну и я внесу пять копеек.

Уважаемый Maxim, здесь не очень то любят людей, которые занимаются написание троянов и подобных вещей. И на вопросы подобного рода не отвечают. Вы еще можете спросить "а как скрыть программу от task manager в NT".

Правда, я не считаю данный вопрос чисто хакерским, никакого взлома нету, просто сбор информации.
Но и легального применения этому не вижу. Вас, как разработчика, допустим, сетевых программ должно волновать наличие/отсутствие TCP/IP протокола на удаленной машине, наличие служб, но никак не тип ОС - для вас это не должно играть никакой. Роли.
А вот использование этих данных в целях взлома вполне понятно - зачем аттаковать Unix или win9x машину DCOM"ом? Вы бы еще спросили как определить наличие или отсуствие определенных апдейтов для Win NT.

Хотя может быть вы специалист по сетевой безопасности и пишете такой сканер? Это достаточно сложная технология. Существуют легитимные способы (см. Rouse). Существуют косвенные способы, как-то анализ ответа эхо запроса, определение стандартых демонов определенных систем, анализ ответов этих демонов (например, Apache зачастую пишет на какой ОС он установлен и даже версию ядра).

Но судя по "дайте компонент" вы таковым специалистом не являетесь, а нужно вам это все для забавы - то ли перед друзьями похвастаться какой вы супер сканер написали (где вашего кода только вызов DetectRemoteOS, остальное VCL+сторонние компоненты). То ли баловаться в своей локальной сети...

В общем, никто не будет тратить время и серьезно помогать вам в таком несерьезном деле. Да и я уже сожалею, что написал такой длинный пост и потратил пять минут...


 
Дмитрий Ботвин   (2004-08-19 08:08) [33]

Piter, на счёт "Но и легального применения этому не вижу..."
ты явно погорячился. Я сам писал программу по сетевому администрированию (администрированию, а не взлому и не для боловства) для практических нужд. Да даже если ему это и нужно в
целях практических навыков, как начинающему, то не нужно его
за это хаить. Ты сам то с чего начинал, припомни на досуге :-))))


 
Rouse_ ©   (2004-08-19 09:11) [34]

> Вы бы еще спросили как определить наличие или отсуствие
> определенных апдейтов для Win NT

Это кстати тоже можно вполне легитимно определить :)


 
Maxim   (2004-08-19 12:36) [35]

Уважаемые Piter, вы писали, свой пост из 20 строчек 5 минут? :) Извиняйте уж....
Я не программист, я аналитик. Программирую лишь на Perl, ASM, PHP, ASP. Я не хочу объяснять, зачем мне это было нужно, скорее даже для интереса чем для какого то важного дела :) Совсем недавно решил разобраться в среде Delphi. И уже на второй день написал несколько интересных программ для LAN. (без копирования чужого кода) А недавно столкнулся именно с такой задачей и решил написать тут.
Так что я не собираюсь перед вами отчитываться и мерятся х... знаниями. ;)
А вам случаем не надоели одни и те же вопросы на этом форуме?? Неужели нельзя заводить именно такие темы. Которые были бы очень полезны народу.
И не какого хакерского наклона я тут не вижу. Сбор информации - это не противозаконно. (Хотя и это зависит от политики безопасности, которую выбрал администратор)

Спасибо всем за обсуждение этой темы. Всё-таки нашлись талантливые и знающие люди.


 
Maxim   (2004-08-19 12:37) [36]

Удалено модератором


 
Piter ©   (2004-08-19 13:41) [37]

Maxim   (19.08.04 12:36) [35]
Уважаемые Piter, вы писали, свой пост из 20 строчек 5 минут? :)


ну где-то так. Просто я еще думаю перед тем как пишу.

Я не хочу объяснять, зачем мне это было нужно

да в общем и так понятно

уже на второй день написал несколько интересных программ для LAN

не сомневаюсь. Уверен, что первой программой был сканер портов

А недавно столкнулся именно с такой задачей

каким образом вы столкнулись с этой задачей? Ну объясните мне. Не вижу я НЕ ЕДИННОГО применения данной информации, кроме как выбора стратегии последующего взлома системы. Администратор удаленного ресурса и так знает какая там ОС, вам как пользователю удаленной машины вообще должно быть параллельно, что там за система.

Спасибо всем за обсуждение этой темы. Всё-таки нашлись талантливые и знающие люди

что, неужто компонент на e-mail прислали? :)))


 
Дмитрий Ботвин   (2004-08-19 15:17) [38]

Кстати, а вы о каком таком компоненте говорите??? Я думал мы
про стандартные API-функции говорим, разве нет :-)))


 
Piter ©   (2004-08-19 15:47) [39]

Дмитрий Ботвин   (19.08.04 15:17) [38]

а с каких пор компонентам запрещается вызывать стандартные API функции?


 
Digitman ©   (2004-08-19 16:32) [40]


> Maxim   (15.08.04 11:54)  


> каким образом с помощью стандартных средств дельфи возможно
> определить OS какого либо компьютера в локальной сети


imho, ты здесь лепишь нам горбатого, в чем я волен и согласиться с <Piter>

а если и не лепишь, то тем паче - неча здесь тебе делать, в этой теме, с такими дурацкими вопросами (цитирую - "Совсем недавно решил разобраться в среде Delphi"), ибо изучение Делфи начинается с осознания того, что  среда эта изначально росла и совершенствовалась как среда быстрой разработки высокопроизводительных бизнес(!!!)-приложений... и не зная этого глупо задавать подобные вопросы ! Глу-по !


 
Maxim   (2004-08-20 00:08) [41]

>Уважаемые Piter, вы писали, свой пост из 20 строчек 5 минут? :)
>ну где-то так. Просто я еще думаю перед тем как пишу.

Долгу думаете, скажу я вам...

>Я не хочу объяснять, зачем мне это было нужно
>да в общем и так понятно

Только как всегда, не через то место...

>уже на второй день написал несколько интересных программ для LAN
>не сомневаюсь. Уверен, что первой программой был сканер портов

И сканер портов тоже был =)) А вы что написали на второй день товарищ? hello world в цветном варианте? :)

>А недавно столкнулся именно с такой задачей
>каким образом вы столкнулись с этой задачей? Ну объясните мне. >Не вижу я НЕ ЕДИННОГО применения данной информации, кроме как >выбора стратегии последующего взлома системы. Администратор >удаленного ресурса и так знает какая там ОС, вам как >пользователю удаленной машины вообще должно быть параллельно, >что там за система.

Если бы передо мной стояла задача определить OS удаленного сервера для последующей попытки взлома, то я, как впроцем и все здравомыслющие люди, воспользовался более продвинутыми средставами удаленного аудита системы: SSS, xspider, LANGuard, Nesus и тд...
"я НЕ ЕДИННОГО применения" - ну не фига себе, это вы загнули мистер...

>Спасибо всем за обсуждение этой темы. Всё-таки нашлись >талантливые и знающие люди
>что, неужто компонент на e-mail прислали? :)))

Нет, просто не разводили флейм, а отвечали по существу и обсуждали данную тему в отличии от вас ;)

to: Digitman.
>imho, ты здесь лепишь нам горбатого, в чем я волен и согласиться >с <Piter>

Да, вы хорошо дополняете друг друга :))

>а если и не лепишь, то тем паче - неча здесь тебе делать, в этой >теме, с такими дурацкими вопросами (цитирую - "Совсем недавно >решил разобраться в среде Delphi"), ибо изучение Делфи

Дурацкими?? :)) А вопросы по типу этого:   http://delphimaster.net/view/6-1091605769/
Вам не надоели?? Когда ответ на этот вопрос можно с дегкостью найти в любом поисковике.
А ответ на мой вопрос, дал только Дмитрий Ботвин и Rouse_.
(за что им, огромное спасибо)

>начинается с осознания того, что  среда эта изначально росла и >совершенствовалась как среда быстрой разработки >высокопроизводительных бизнес(!!!)-приложений... и не зная этого >глупо задавать подобные вопросы ! Глу-по !

нет не глупо. Глупо разводить столько флейма и отвечать не в тему...
Незнаешь - лучше промолчи...


 
Rouse_ ©   (2004-08-20 00:12) [42]

> [41] Maxim   (20.08.04 00:08)
Максим (и собеседники), официальное предупреждение, не нужно устраивать разборок в данной ветке, в противном случае ветка будет закрыта. (используйте чат или другие средства контактирования...)

Кo-модератор...


 
Maxim   (2004-08-20 00:15) [43]

Прошу прощения за некоторые орф.ошибки  =) Я думаю и пишу одновременно... %))

Спасибо людям которые помогли мне разобраться с моим вопросом. Я вас уверяю - не каких "хакерских намерений" тут не было.
А такие люди, как Piter (не люблю тыкать пальцами :)) , лучше бы промолчали в данной теме...Зачем разводить столько флейма и втирать мне про "взлом удаленного сервера". Еще раз повторяю: сбор информации не коим образом, не является попыткой взлома.
Многие сканеры LAN имеют функцию определения OS. (LANGuard пример этому ;)

Все, на этом я заканчиваю свой последний пост в эту тему :)

p.s> Piter людям надо помогать, каким бы вопрос не был. А не грубить и предьявлять глупые обвинения.


 
Maxim   (2004-08-20 00:16) [44]

Rouse_, прошу прощения. Я просто ответил на выдвинутые мне претензии и обьеснил Piter"у и его товарищу истенные цели.

Last post....


 
Rouse_ ©   (2004-08-20 00:27) [45]

Скажу только то что мое мнение абсолютно противоположно Piter и Digitman... Данные возможности абсолютно доступны для массового использования и любой программист спокойно сможет узнать открытую (а мы разговаривали именно об открытой информации) о удаленном компьютере...
И к чему были подняты такие страсти, мне абсолютно непонятно, а местами просто смешно...

С Уважением...


 
Piter ©   (2004-08-20 00:53) [46]

Maxim   (20.08.04 0:08) [41]
я НЕ ЕДИННОГО применения" - ну не фига себе, это вы загнули мистер


ну вот ты обвиняешь, обвиняешь. А ты так и не привел пример легитимного использования данной информации.

Просто скажи зачем тебе это нужно. Просто скажи. Если все чисто - почему ты увертываешься?

Тогда и помощь будет.


 
Дмитрий Ботвин   (2004-08-20 08:11) [47]

Rouse_ руби ветку, это уже не форум и даже не флейм. Это просто
базар из рубрики "Потрепаться"....


 
Digitman ©   (2004-08-20 09:26) [48]


> Maxim   (20.08.04 00:08) [41]


знаешь что, уважаемый ? если ты перед тем как задавать этот вопрос поленился прошарить сеть и найти там, скажем, достаточно серьезную утилиту NMap (делающую то что тебе нужно и далеко не только это), исходники которой и по сей день открыты для изучения, сказать тебе более нечего


 
Polevi ©   (2004-08-20 10:19) [49]

да пусть дите потешится, определит ОС, коли на большее не хватает фантазии



Страницы: 1 2 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.67 MB
Время: 0.041 c
14-1096597359
080D:07BBh
2004-10-01 06:22
2004.10.24
Утечки в Java


14-1096530538
vecna
2004-09-30 11:48
2004.10.24
Друзья vs деньги или "Курсы личностного роста"


1-1096997019
Knoxville
2004-10-05 21:23
2004.10.24
Разделение строки на части


8-1091114404
parovoZZ
2004-07-29 19:20
2004.10.24
16 разрядов и 32


3-1095617691
pashaz
2004-09-19 22:14
2004.10.24
Обработка OnLostConnection (FIBPlus)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский