PCLinuxOS 설치

남는 P3 Dual 컴퓨터에 PCLinuxOS를 설치해 보았다.
한글 지원이 정식으로 안되는것 제외하고는 정말 잘 만들어진 패키지란 느낌이 든다.

윈도우즈의 제어판과 유사한 제어판..
복잡한 설정없이 CD부팅후 로컬 디스크에 자동으로 인스톨~
기능추가시 자동 다운로드 및 설치후 설정
KDE3.X기반의 데스크톱 환경, 독특한 파일 관리자 ( 윈도우즈와 유사 )
여러가지 데스크톱 어플리케이션

일반적으로 사무용으로 사용되는 컴퓨터는 그냥 별다른 설정없이 자동설치후 사용가능할것 같다.

common-httpclient를 이용하여 사이월드 접속수 올려보기







jakrta의 common-httpclient를 이용해 사이월드의 미니홈피의 접속수를 올려보자..


참고로 사용하다가 생기는 모든문제는 책임안져준다..–;



import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.methods.multipart.*;
import org.apache.commons.httpclient.params.*;


import java.io.*;



public class HitUp {
 
  private String tid;
  private String main_url;
  private String sub_url;
  private String target_url;
  private String user_agent = “Mozilla/4.0”;


  // 미니홈피의 url을 입력으로 받는다.. http://www.cyworld.com/love2strue 같이 완전한 url이어야 함..
  public void setMainURL(String url){
    main_url = url;
  }
 
  public String getTid() throws Exception {
   


    // Client를 생성
    HttpClient client = new HttpClient();

    // 사용할 메소드를 생성 – 접속할 url을 지정
    GetMethod multi = new GetMethod(main_url);
    // 헤더에 포함될 useragent (안쓰면,, common-httpclient-version)
    multi.setRequestHeader(“User-Agent”, “Mozilla/4.0”);
 
    // 서버에 접속
    int statusCode = client.executeMethod(multi);        
   


    // 실행 결과를 받아오는 루틴이다.
    byte buffer[] = null;
    ByteArrayOutputStream sb = null;
    InputStream response = null;
    int bytes_read = 0;
    if(multi.getStatusCode() == 200){
      System.out.println(multi.getResponseBodyAsString());     
      buffer = new byte[128];
      sb = new ByteArrayOutputStream();
      response = multi.getResponseBodyAsStream();
      for(bytes_read = response.read(buffer); bytes_read > -1; bytes_read = response.read(buffer))
          sb.write(buffer, 0, bytes_read);
      response.close();
      multi.releaseConnection();
      String result = sb.toString();
     
      // 개인의 미니 홈피를 열기 위해서 tid를 따내는 작업
      // 다음과 같은 문자열 틈에 있다.
      int findex = result.indexOf(“?tid=”);
      findex = findex + (“?tid=”.length());
      int lindex = result.indexOf(“&urlstr”);
      //System.out.println(“”+findex + “, ” + lindex);
      tid = result.substring(findex, lindex);
      System.out.println(“MiniHp Tid : ” + tid);
      sb.close();


      // tid따내기 성공
      return tid;
    } else {
      System.out.println(“URL Fault!”);
      System.exit(-1);
    }
    return null;


  }
 
  // 얻어진 tid로 미니홈피 페이지를 연다…
  public void run(String tid) throws Exception {
    if(tid == null){
      tid = getTid();
    }
    HttpClient client = new HttpClient();
    GetMethod multi = new GetMethod(“http://minihp.cyworld.nate.com/pims/main/pims_main4.asp?tid=”+tid+


“&domain=&cast=&dpop=&productseq=&gift_preview=&thema=&codi=&preview_effect=


&preview_effect_cd=&seq=&urlstr=&urlstrsub=&send_seq=&back=&item_seq=&act=


&Nyearmon=&board_no=&choco=&product_type=&effect_menu_sel=&toyearmonday=


&preview_news=&theme_seq=&theme_nm=&theme_cat=&catalog_id=&theme_from=


&contents_mode=&mana_type=&town_action”); 



    multi.setRequestHeader(“User-Agent”, user_agent);
   
    int statusCode = client.executeMethod(multi);        
   
    byte buffer[] = null;
    ByteArrayOutputStream sb = null;
    InputStream response = null;
    int bytes_read = 0;
    if(multi.getStatusCode() == 200){
        System.out.println(multi.getResponseBodyAsString()); 
   
      buffer = new byte[128];
      sb = new ByteArrayOutputStream();
      response = multi.getResponseBodyAsStream();
      for(bytes_read = response.read(buffer); bytes_read > -1; bytes_read = response.read(buffer))
          sb.write(buffer, 0, bytes_read);
 
    
      response.close();
      multi.releaseConnection();
      String result = sb.toString();


      // 다음과 같은 응답이면 spam으로 차단된것임.. 1시간을 기둘렸다가 하던지.. 여기서는 종료..
      if(result.indexOf(“/img/error/spam/alert_spam.gif”) != -1){
        System.out.println(“Blocking 되었음 : spam차단”);
        System.exit(-1);
      }
      sb.close();
     
    } else {
      System.out.println(“URL Fault!”);
      System.exit(-1);
    }


  }
 



  // HitUp http://www.cyworld.com/love2strue 100 과 같이 입력한다.


  public static void main(String args[]){
    if(args.length < 2){
      System.out.println(“Useage : HitUp [url:string] [hitCount:int]”);
      System.exit(-1);
    }
    System.out.println(“Target : ” + args[0]);   
   
    // 첫번째 인자는 미니홈피 주소.
    String main_url = args[0];


    // 올릴 카운트 수
    int count = Integer.parseInt(args[1]);   
    System.out.println(“Hit Count : ” + args[1]);
   
    String tid = null;



     for(int i =0 ; i < count ; i++){
      HitUp t = new HitUp();
      t.setMainURL(main_url);
      try{    
        t.run(tid);
        System.out.println(“Current Count : ” + (i + 1));
 // 반드시 기다린다. 대략 1분에서 2분정도
 // 기다리지 않으면 spam으로 차단된다.
        Thread.currentThread().sleep(100000);
      }catch(Exception e){
        e.printStackTrace();
      }   
    }
  
  }



내부적으로 2~3번의 프레임중에 미니홈피를 띄우게 되는데..



tid와 url만 알아내면 접속수올리는것은 문제도 아님..



다만 시간이 문제인데.. 접속주기가 짧을경우 spam으로 처리해서


계정을 block처리한다.. 아무래도 이러한 툴의 사용을 막고 싶었나보다..



보시다시피 해킹이 아닌 그냥 범용 client이다…-,ㅡ;



– 삶에찌들기전에 즐겨라.. –