Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wykrywanie jezyka poprzez ip
Barnaba
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


no wlasnie wpadlem sobie na pomysl ze podczas ladowania strony bedzie automatycznie wzucal dany jezyk po poprzednim zweryfikowaniu adresu ip a dokladnie z jakiego kraju pochodzi.
Czy da sie cos takiego zrobic?
prosze o mala podpowiedz jesli tak...
Go to the top of the page
+Quote Post
[Regis]
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Watpie zeby sie dalo... lepiej sprawdzaj przegladarke jak juz musisz - tam tez jest info o jezyku, choc zwykle nieprecyzyjne (przeciez nikt Ci nie zabroni uzywac angielskiej przegladarki na przyklad (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post
Barnaba
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


no wlasnie i dlatego chce zrobic to poprzez wykrycie ip usera...
Go to the top of the page
+Quote Post
nobody
post
Post #4





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 9.07.2003
Skąd: Lublin city

Ostrzeżenie: (0%)
-----


Mozesz zrobic tak:
[php:1:cd9024774c]<?php
$host=gethostbyaddr($REMOTE_ADDR);
$dane=strrchr($host, ".");
switch($dane){
case ".pl":
//ustaw polski
break;

case ".ru":
//ustaw ruski
break;

default:
//ustaw standardowy
break;
}
?>[/php:1:cd9024774c]
Ale to prowizora...nie wiem czy przydatna :x
Go to the top of the page
+Quote Post
Mac
post
Post #5





Grupa: Zarejestrowani
Postów: 294
Pomógł: 0
Dołączył: 9.04.2002
Skąd: miejscowosc

Ostrzeżenie: (0%)
-----


Cytat
no wlasnie wpadlem sobie na pomysl ze podczas ladowania strony bedzie automatycznie wzucal dany jezyk po poprzednim zweryfikowaniu adresu ip a dokladnie z jakiego kraju pochodzi.
Czy da sie cos takiego zrobic?
prosze o mala podpowiedz jesli tak...

Nie wiem czy to będzie dobre rozwiązanie, ale możesz używając funkcji
[php:1:96a1288519]gethostbyaddr($_SERVER["REMOTE_ADDR"])[/php:1:96a1288519]
sprawdzać np. czy ostatnia część tego hosta (uzyskanego z adresu IP użytkownika) kończy się np. na "pl" - to oznacza, że ktoś najprawdopodobniej jest z Polski, ale to i tak nie jest pewne, ponieważ ktoś może np. połączyć się przez polski serwer proxy i wtedy IP tego użytkownika (więc i jego host) będą "polskie" tzn. skrypt "pokaże", że dana osoba jest z Polski choć nie zawsze będize to prawdą (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nobody
post
Post #6





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 9.07.2003
Skąd: Lublin city

Ostrzeżenie: (0%)
-----


Cytat
ale to i tak nie jest pewne, ponieważ ktoś może np. połączyć się przez polski serwer proxy i wtedy IP tego użytkownika (więc i jego host) będą "polskie" tzn. skrypt "pokaże", że dana osoba jest z Polski choć nie zawsze będize to prawdą (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A pozatym ktos moze wchodzic z hosta np. mietek.org(np.polak) lub billgates.org(np.amerykanin) i wtedy nie rozpoznasz prawidlowo jaki jezyk powinnien zostac ustawiony.
Go to the top of the page
+Quote Post
Barnaba
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


chodzilo mi raczej o cos w stylu skryptu ktory wyswietla ip twojej maszyny, a jezeli ktos jest w jakiejs podsieci to zeby wykryl ip serwera poprzez ktory sie laczy...
Go to the top of the page
+Quote Post
Wankster
post
Post #8





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

Ostrzeżenie: (0%)
-----


Znalazłem taką funkcję w phpBB2/install/install.php:[php:1:6388102afd]<?php

// Guess an initial language ... borrowed from phpBB 2.2 it's not perfect,
// really it should do a straight match first pass and then try a "fuzzy"
// match on a second pass instead of a straight "fuzzy" match.
function guess_lang()
{
global $phpbb_root_path, $HTTP_SERVER_VARS;

// The order here _is_ important, at least for major_minor
// matches. Don't go moving these around without checking with
// me first - psoTFX
$match_lang = array(
'arabic' => 'ar([_-][a-z]+)?',
'bulgarian' => 'bg',
'catalan' => 'ca',
'czech' => 'cs',
'danish' => 'da',
'german' => 'de([_-][a-z]+)?',
'english' => 'en([_-][a-z]+)?',
'estonian' => 'et',
'finnish' => 'fi',
'french' => 'fr([_-][a-z]+)?',
'greek' => 'el',
'spanish_argentina' => 'es[_-]ar',
'spanish' => 'es([_-][a-z]+)?',
'gaelic' => 'gd',
'galego' => 'gl',
'gujarati' => 'gu',
'hebrew' => 'he',
'hindi' => 'hi',
'croatian' => 'hr',
'hungarian' => 'hu',
'icelandic' => 'is',
'indonesian' => 'id([_-][a-z]+)?',
'italian' => 'it([_-][a-z]+)?',
'japanese' => 'ja([_-][a-z]+)?',
'korean' => 'ko([_-][a-z]+)?',
'latvian' => 'lv',
'lithuanian' => 'lt',
'macedonian' => 'mk',
'dutch' => 'nl([_-][a-z]+)?',
'norwegian' => 'no',
'punjabi' => 'pa',
'polish' => 'pl',
'portuguese_brazil' => 'pt[_-]br',
'portuguese' => 'pt([_-][a-z]+)?',
'romanian' => 'ro([_-][a-z]+)?',
'russian' => 'ru([_-][a-z]+)?',
'slovenian' => 'sl([_-][a-z]+)?',
'albanian' => 'sq',
'serbian' => 'sr([_-][a-z]+)?',
'slovak' => 'sv([_-][a-z]+)?',
'swedish' => 'sv([_-][a-z]+)?',
'thai' => 'th([_-][a-z]+)?',
'turkish' => 'tr([_-][a-z]+)?',
'ukranian' => 'uk([_-][a-z]+)?',
'urdu' => 'ur',
'viatnamese' => 'vi',
'chinese_traditional_taiwan'=> 'zh[_-]tw',
'chinese_simplified' => 'zh',
);

if (isset($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE']))
{
$accept_lang_ary = explode(',', $HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE']);
for ($i = 0; $i < sizeof($accept_lang_ary); $i++)
{
@reset($match_lang);
while (list($lang, $match) = each($match_lang))
{
if (preg_match('#' . $match . '#i', trim($accept_lang_ary[$i])))
{
if (file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $lang)))
{
return $lang;
}
}
}
}
}

return 'english';

}

?>[/php:1:6388102afd]
Go to the top of the page
+Quote Post
adwol
post
Post #9





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


Cytat
no wlasnie i dlatego chce zrobic to poprzez wykrycie ip usera...

A jak ja mam domene .org i jestem Polakiem, albo .pl ale wole czytać po angielsku, to co?

Takie coś przeglądarka załatwia nagłówkiem Accept-Language. Zobacz sobie zawartość pola
[php:1:c71601938f]<?php
$_SERVER['HTTP_ACCEPT_LANGUAGE']
?>[/php:1:c71601938f]
Tam masz wymienione języki w jakich klient chce otrzymywać wynik w kolejności preferencji i z dodatkowymi parametrami.
Go to the top of the page
+Quote Post
Barnaba
post
Post #10





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


thx za podpowiedzi... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
scanner
post
Post #11





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




To już było na forum.
Hint: GeoIP.
Go to the top of the page
+Quote Post
b3
post
Post #12





Grupa: Zarejestrowani
Postów: 65
Pomógł: 2
Dołączył: 25.08.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Wankster

dostarczyl dobry skrypt..

wystarczy ze przerobisz go (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) i bedzie smigac supa!
Go to the top of the page
+Quote Post
Gall
post
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 28.08.2003
Skąd: Bytom

Ostrzeżenie: (0%)
-----


countries.nerd.dk - pewnie możnaby wykorzystać?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:46