Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szyfrowane liczby w Javascript
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Napster
Witam.
Potrzebuje parsować listę adresów serwerów proxy oraz port za pomocą wyrażeń regularnych. Z adresem IP nie mam problemu, jednak nie potrafię odczytać portu, bo jest jakby zaszyfrowany, chyba specjalnie.

Adres do strony
http://www.samair.ru/proxy/

Przykładowy fragment kodu:
  1. <tr><td>116.236.216.116<script type="text/javascript">document.write(":"+z+o+z+o)</script></td><td>anonymous </td><td>May-18, 09:58</td><td>China</td></tr>
  2. <tr><td>218.207.195.217<script type="text/javascript">document.write(":"+z+o)</script></td><td>anonymous </td><td>May-18, 10:24</td><td>China</td></tr>
  3. <tr><td>213.248.60.252<script type="text/javascript">document.write(":"+z+o)</script></td><td>anonymous </td><td>May-16, 16:04</td><td>Russian Federation</td></tr>
  4. <tr><td>84.73.154.109<script type="text/javascript">document.write(":"+z+o)</script></td><td>anonymous </td><td>May-17, 03:22</td><td>Switzerland</td></tr>
  5. <tr><td>183.88.159.147<script type="text/javascript">document.write(":"+z+o+z+o)</script></td><td>anonymous </td><td>May-18, 10:56</td><td>Thailand</td></tr>
  6. <tr><td>180.183.43.234<script type="text/javascript">document.write(":"+l+m+j+z)</script></td><td>anonymous </td><td>May-17, 09:52</td><td>Thailand</td></tr>


Chodzi o to np.
  1. <script type="text/javascript">document.write(":"+l+m+j+z)</script>


W źródle znalazłem takie coś:
[JAVASCRIPT] pobierz, plaintext
  1. eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('e=5;d=1;c=6;a=8;b=3;g=0;f=4;h=9;i=7;j=2;',20,20,'||||||||||z|l|q|m|k|u|o|t|n|'.split('|'),0,{}))
[JAVASCRIPT] pobierz, plaintext


Jak to odczytywać? Z początku myślałem, że każda litera ma przypisaną liczbę, ale tak nie jest, bo jest to zmienne.

Proszę o pomoc.
viking
http://jsbeautifier.org/
redeemer
Zawsze możesz użyć rozwiązania typu PhantomJS, zamiast bawić się w "rozszyfrowywanie" javascriptu. Takie rozwiązanie będzie też bardziej "future proof".
Comandeer
Dokładnie jak mówi @redeemer - jeśli trzeba coś pobrać ze strony, która do wyświetlania tego używa JS, najlepiej to odpalić w takiej "pseudoprzeglądarce", która po prostu wykona JS, a Tobie pozwoli pobrać odpowiednie rzeczy przez DOM - prosto i przyjemnie. Minus? Trza umieć w JS wink.gif

Co do wyrażeń regularnych i parsowania stron - chyba najlepiej oddaje to ten wpis na SO: http://stackoverflow.com/a/1732454
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.