Jump to content

Vhaerun

Active Members
  • Posts

    388
  • Joined

  • Last visited

Everything posted by Vhaerun

  1. Ce anume sa mai aflu ?
  2. N-am avut cand incerca , azi am fost toata ziua la lucru . Maine incerc .
  3. Logic sa tina de procesor endiannes-ul . Dar cum java e big-endian , asa c/c++ e , in general ( din cate stiu eu ;lucrez pe C/C++/Java ) e little-endian . Bineinteles toate chestiile astea tin de platforma , si la o adica poti scrie un tip de date cum vrei tu , cu toate ca un limbaj e sau nu big-endian .
  4. Nu e adevarat.Chestia cu endianness tine de limbajul de programare. Pot sa iti dau exemplu Java , int-urile din java sunt big-endian , pe cand in c/c++ sunt little-endian , ca implementare .
  5. Si eu am ajuns aseara la 2 . Maine incerc sa vad cat ajung . Today I'm testing my car
  6. Socket s = new Socket("vortex.labs.pulltheplug.org",5842); Exception in thread "main" java.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:519) at java.net.Socket.connect(Socket.java:469) at java.net.Socket.<init>(Socket.java:366) at java.net.Socket.<init>(Socket.java:179)
  7. Socket timeout. Vrei si cod ?
  8. Cred ca sunt down , am incercat primul challenge de pe vortex si nu ma pot conecta , nici pe vortex .
  9. Nu eram un mare fan al recursivitatii , dar mi s-au cerut la lucru sa fac niste functii care traverseaza directoare & stuff , si a trebuit sa ma descurc . Am facut un walker care accepta ca parametri un director si un coderef , cu actiunea ce va fi luata asupra fiecarui fisier . Se poate ca el sa fie mai lent ca File::Find , teoretic codul ar trebui sa fie portabil ( desi nu l-am incercat decat pe windows ) . Cod : use strict; my $public_file = ""; my $public_dir = ""; sub list { my $zir = shift; my @lista; opendir(D,$zir) || do { print "nu pot deschide directorul $zir,sar!\n"; return; }; @lista = readdir(D); closedir(D); return @lista; } sub walk { my $dir = shift; my $code_ref = shift; my @tlist = list($dir); foreach my $file (@tlist) { next if($file eq "." || $file eq ".."); $public_file = $file; $public_dir = $dir; if(-d "$dir" . "/$file") { walk("$dir" . "/$file",$code_ref); } else { &$code_ref(); } } } Mod de folosire : - nu am facut un modul , asa ca fie faci un fisier .pl ce contine functiile list si walk si il incluzi , fie le tot copiezi in fiecare fisier ce le foloseste. Exemplu de folosire: - fiecare fisier se poate accesa prin $public_file si fiecare director se poate accesa prin $public_dir 1 --- afiseaza toate fisierele .pl dintr-un director trimis ca parametru scriptului walk(shift,sub {print $public_dir . "/$public_file\n" if($public_file=~/\.pl$/i)}); 2 --- sterge toate fisierele walk(shift,sub { `rm -f $public_file` });
  10. Tu cam despre ce crezi ca e vorba ? Ce iti sugereaza numele sitului , Barbie ?
  11. Lool . Nu ma asteptam la user-ul acela
  12. Trebuie sa va inregistrati pentru a accesa video-urile. http://video.reverse-engineering.net/index.php
  13. De unde naiba veniti ? Auzi si la asta , fura parola de la FTP . Si trebuie sa o plateasca nashii , sa o aduca inapoi ?
  14. NullPointerException apare cand se incearca folosirea unui obiect ce nu a fost instantiat inca .
  15. Am facut si eu ceva asemanator in Java mai demult . Scopul meu era sa imi scriu propriul client/server VNC . Din motive de lene , si proasta organizare a codului , a ramas doar la stadiu de desktop viewer E interesant ca l-ai scos in atat de putine linii .
  16. de fapt o interpretezi 8)
  17. Vhaerun

    Buna

    pai si numai aici stii sa postezi ? cate zeci de posturi ai doar la bun venit ?
  18. Hertz ,eram ironic
  19. Vedeti ? De ce nu ne putem intelege asa tot timpul ? :?
  20. Vhaerun

    Frychy

    Te ocupi ?
  21. Nu stiu daca iti dai seama , dar nu are sens sa rulezi scriptul pe alt site . Daca scriptul e facut pentru form-ul de pe bitefight , sansele sunt tare mici sa functioneze altundeva . Pe Windows XP nu trebuie linia #RequireAdmin , doar pe Vista .
  22. Acum fa fara controale .
  23. Help-ul de la AutoIT contine exemple pt. toate functiile . Nu mai e nevoie decat de un pic de logica .
  24. Nu am mai postat de ceva timp un tutorial de programare , so here goes . Asta va fi in Java , because . O sa va arat doua variante de a accesa situri din codul vostru , prima fiind cu clasele puse la dispozitie de Sun care ascunde detaliile de utilizatorul de rand , si una mai low-level facuta prin socket-uri . Prima varianta ar fi urmatoarea : import java.io.*; import java.net.*; import java.util.*; public class WebClient { private String line=""; private String content=""; private URL url; private URLConnection urlConn; private BufferedReader reader; public WebClient() { } public void getPrint(String site) throws Exception { url = new URL(site); urlConn = url.openConnection(); reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); while((line = reader.readLine()) != null) { System.out.println(line); } } public String get(String site) throws Exception { url = new URL(site); urlConn = url.openConnection(); reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); while((line = reader.readLine()) != null) { content += line; } return content; } public static void main(String[] args) throws Exception { WebClient wc = new WebClient(); //wc.getPrint("http://www.google.ro"); System.out.println(wc.get("http://www.google.ro")); } } Avantajul acestei abordari ar fi : - aceste clase sunt testate si rastestate , deci vor functiona - clasa URL seteaza singura host si document , deci nu mai trebuie sa te chinui cu expresii regulate / substring / whatever , pentru a obtine ce te intereseaza dintr-un url - clasa URLConnection se conecteaza singura , si cere paginile , in conformitate cu standardul HTTP , deci nici aici nu trebuie sa stii cum functioneaza HTTP Dezavantajul ar fi : - un utilizator de rand nu stie ce se intampla in spate A doua abordare ar fi ceva scris de la zero . import java.io.*; import java.util.StringTokenizer; import java.net.*; public class SimpleClient { private boolean succes; private int responseCode; private String content=""; private Socket s; private PrintWriter pw; private BufferedReader br; private String line=""; public SimpleClient() { } public boolean isSuccess() { return (responseCode>=200 && responseCode<400); } public String getDoc(String url) { String doc="/"; int wPos=url.indexOf("www."); int hPos=url.indexOf("http://"); int sPos=url.indexOf("/",wPos+4); int ssPos=url.indexOf("/",hPos+7); if(hPos != -1) { if(wPos != -1) { if(sPos != -1) { doc = url.substring(sPos); } } else { if(sPos != -1) { doc = url.substring(ssPos); } } } else { if(wPos != -1) { if(sPos != -1) { doc = url.substring(sPos); } } else { int sPos2 = url.indexOf("/"); if(sPos2 != -1) { doc = url.substring(sPos2); } } } return doc; } public String getHost(String url) { String host=""; if(url.startsWith("http://")) { int tpos=url.indexOf("http://"); int slashPos=url.indexOf("/",tpos+8); if(slashPos == -1) { host = url.substring(tpos+7); if(host.startsWith("www.")) { int wPos=host.indexOf("www."); host = host.substring(wPos+4); } } else { host = url.substring(tpos+7,slashPos); if(host.startsWith("www.")) { int wPos=host.indexOf("www."); host = host.substring(wPos+4); } } } else { int tpos=url.indexOf("www."); if(tpos == -1) { int slashPos=url.indexOf("/"); if(slashPos != -1) { host = url.substring(0, slashPos); } else { host = url.substring(0); } } else { int slashPos=url.indexOf("/"); if(slashPos != -1) { host = url.substring(tpos+4,slashPos); } else { host = url.substring(tpos+4); } } } return host; } public void get(String site) { try { s=new Socket(getHost(site),80); pw=new PrintWriter(s.getOutputStream()); br=new BufferedReader(new InputStreamReader(s.getInputStream())); pw.println("GET "+getDoc(site)+" HTTP/1.0"); pw.println("Host: "+getHost(site)); pw.println(); pw.println(); pw.flush(); while((line=br.readLine())!=null) { content+=line+"\n"; } s.close(); parseResponseCode(content); } catch(Exception e) { e.printStackTrace(); } } private void parseResponseCode(String content) { String line=content.substring(0,content.indexOf("\n")); StringTokenizer st=new StringTokenizer(line); st.nextToken(); responseCode=Integer.parseInt(st.nextToken()); } public String extractTextBetween(String text,String start,String end) { int pos1=text.indexOf(start)+1; int pos2=text.indexOf(end)+1; return text.substring(pos1, pos2); } private void setContent(String content) { this.content = content; } private String getContent() { return content; } private void setResponseCode(int responseCode) { this.responseCode = responseCode; } private int getResponseCode() { return responseCode; } public static void main(String[] args) { SimpleClient sc=new SimpleClient(); sc.get("s2.bitefight.ro/bite/uebersicht.php"); System.out.println(sc.getContent()+"\n"+sc.getResponseCode()); } } Codul in sine nu e greu de inteles , poate partea cea mai complicata ar fi functiile getDoc si getHost . Am evitat sa folosesc expresiile regulate din java , pentru ca nu prea sunt PCRE . Acest cod , scris cu socket-uri nu urmeaza redirecturi , poate nici URLConnection nu le urmeaza , nu stiu sigur . Pentru a afla mai multe informatii despre HTTP si browsere in general , eu recomand cartea "Web Client programming in Perl" , care poate fi gasita aici : http://www.oreilly.com/openbook/webclient/ . Daca nu esti interesat de perl , poti citi doar primele 2 capitole , care iti vor explica tot ce ai nevoie sa stii Have fun
  25. Arata-ne ceva facut de tine , si atunci poate o sa iti arat ceva respect . Nu posta ceva ce se stia de cand lumea . By the way : daca te uiti la sectiunea de programare si tutoriale , poate gasesti si ceva facut de mine ( care nu e tradus , sau luat de altundeva )
×
×
  • Create New...