Programming & Tools/Tools2010. 3. 24. 18:31

1. 소개 
  IP List를 이용해서 SNMP Query를 전송하는 프로그램으로 단말기의 업데이트에 응용이 가능하며, 상업적인 용도가 아니면 누구나 사용이 가능합니다. 분당 2000개 이상 Query가 가능합니다.

2. 기능



① : IP List를 가진 Text 파일을 읽어와서 Start 버튼을 클릭 하게 되면 ②, ③ tab의 위치에 있는 OID 값으로 Get 혹인 Set Query를 List에 있는 모든 IP로 전송. 
② : Get 혹은 Set Query 선택.
③ : Query 할 OID를 입력. Get/Set 버튼은 IP Address Edit Box에 있는 곳으로 한번 Query
④ : Query에 대한 결과 출력.

Posted by 다크쌍피
Programming & Tools/Media2010. 3. 24. 17:38

사용 버전 : vlc-1.0.5-win32
Step 1. 스트리밍 서버 실행

Step 2. 플레이 동영상 추가.

Step 3. 소스 파일 확인.

Step 4. Target 등록을 MMS로 추가

Step 5. MMS 포트를 사용하지 않는 포트로 등록

Step 6. TTL 관련 설정.

Step 7. Client 동작


Step 8. Client 동작 확인.
Posted by 다크쌍피
Programming & Tools/Delphi2010. 3. 17. 17:59
function ChangeFileExt(const FileName, Extension: string): string; 
// 바뀐 문자열만 리턴
// aaa.txt 를 aaa.avi 로 바꿀 경우
// ShowMessage( ChangeFileExt('aaa.txt', '.avi') );
// aaa.avi 로 출력

function FileSize(var F): Integer; 
// 파일 크기

function FileAge(const FileName: string): Integer; 
// 파일을 생성한 날짜

function FileDateToDateTime(FileDate: Integer): TDateTime; 
// 날짜 := FileDateToDateTime( FileAge('FileName') );

function FileSetDate(Handle: Integer; Age: Integer): Integer; overload; 
// 파일을 생성 날짜 변경 

function DateTimeToFileDate(DateTime: TDateTime): Integer; 
// TDateTime형을 Integer형으로 리턴

function FileSetAttr(const FileName: string; Attr: Integer): Integer; 
// 파일의 속성 변경(읽기전용,숨김등..) 

function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean; 
// True=읽기전용, False=해제 

function DiskSize(Drive: Byte): Int64; 
// 드라이브(디스크) 용량

function DiskFree(Drive: Byte): Int64; 
// 드라이브 남은 용량 
// (Drive: 0=Default Drive, 1=A:, 2=B:, 3=C:, 4=D: 등) 

function AnsiExtractQuotedStr(var Src: PChar; Quote: Char): string; 
function AnsiDequotedStr(const S: string; AQuote: Char): string; 

// ShowMessage( AnsiDequotedStr('-ABCDEF-GHIJK$..', '-') ); 
// Result -> ABCDEF 

function AnsiLastChar(const S: string): PChar; 
// 문자열의 마지막 문자 리턴 (2Byte 문자도 가능)

procedure AppendStr(var Dest: string; const S: string); deprecated; 
// Dest := Dest + S;

function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string; 
// Boolean 값 비교, UseBoolStrs 을 True로 할 경우 문자열로 리턴 

function ByteToCharIndex(const S: string; Index: Integer): Integer; 
// S 문자열 길이를 리턴. S 문자열 길이보다 Index 값이 크면 0을 리턴한다. (그외 Index 값 리턴) 

function ByteToCharLen(const S: string; MaxLen: Integer): Integer; 
// S 문자열 길이보다 MaxLen 값이 크면, S 길이를 리턴한다. (그 외 MaxLen 값 리턴) 

function ByteType(const S: string; Index: Integer): TMbcsByteType; 
// S[Index] 값이 1바이트 값인지, 2바이트(한글) 값의 첫번째 바이트인지, 두번째 바이트인지 판별한다. 
ex) 
var 
 ty: TMbcsByteType; 
begin 
 ty := ByteType('ABC하하012',5); 
 case ty of 
   mbSingleByte: ShowMessage('1byte 문자'); 
   mbLeadByte  : ShowMessage('2byte 문자의 첫번째 바이트'); 
   mbTrailByte : ShowMessage('2byte 문자의 두번째 바이트') 
 end; 
end; 

[출처 : 델마당 - 강좌,팁,정보]
Posted by 다크쌍피
Programming & Tools/Delphi2010. 3. 15. 17:30
OnKeyPress Event에서 Util_ChkKeyPress_VaidNum() 함수 호춤.

function Util_ChkKeyPress_VaidNum(Key:Char):Boolean;
begin
  if Key in ['0'..'9','-',#8,#9,#32,#3,#22] then // 0~9, -, Tab, BS, Space, Ctrl+C, Ctrl+V 만 유효
    result := True
  else
    result := False;
end;
Posted by 다크쌍피
Programming & Tools/Delphi2010. 3. 15. 17:25
Memo1.Lines.Add('Text추가' );
Memo1.Perform(WM_VSCROLL, SB_BOTTOM, 0);  // Memo 자동 스크롤
Posted by 다크쌍피


<script type="text/javascript" src="http://maps.google.co.kr/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var marker;
var map;
  function initialize() {
    var myLatlng = new google.maps.LatLng(37.4136, 127.1260);
    var myOptions = {
      zoom: 16,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      navigationControl: true,
      navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN}
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    marker = new google.maps.Marker({
        position: myLatlng,
        map: map
    });

}
function marker_move(latitude, longitude) {
    map.panTo(new google.maps.LatLng(latitude, longitude));
    marker.setPosition(new google.maps.LatLng(latitude, longitude));
}
</script>

'Programming & Tools > Google Map API' 카테고리의 다른 글

[Google Map API (V2.0)] Marker 이동  (0) 2010.03.15
Posted by 다크쌍피


<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key=ABQIAAAA5_gB2Vg-1c-nbEM5V0Y6BhSsl9vjFdX_kmbr4wmtUaFXU66-4BS9peJkYCnYOka-xtNKoS2DurDuAA" type="text/javascript"></script>
<script type="text/javascript">
var marker;
var LatLng;
var map;

   function initialize() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        LatLng = new GLatLng(37.4136, 127.1260);
        map.setCenter(LatLng , 13);
        map.setUIToDefault();

       markerOptions = { };
       marker = new GMarker(LatLng, markerOptions);
       map.addOverlay(marker);
     }
   }

   function marker_move(latitude, longitude) {
     map.panTo(new GLatLng(latitude, longitude));
     marker.setLatLng(new GLatLng(latitude, longitude));
  }
</script>

'Programming & Tools > Google Map API' 카테고리의 다른 글

[Google Map API (V3.0)] Marker 이동  (0) 2010.03.15
Posted by 다크쌍피
Programming & Tools/Linux2009. 8. 5. 14:53

1. 개요
  Windows에서 원격데트크톱 연결을 사용하면, 외부에서 나의 컴퓨터를 Remote로 연결하여 사용 할 수 있어 정말 편하다. 지금까지 우리는 Linux에서는 Terminal로 작업해야 하고, CLI형태로 되어 있어 Linux를 잘모르는 사람은 사용하기 힘들다는 고정 관념을 가지고 있는 사람이 많았다. 이것을 해결 해 주는 프로그램으로 VNC가 나와서 잘 사용하였는데, VNC의 문제점은 컴퓨터가 로그인 되어 있지 않으면, 사용하기 어려운 문제점이 발생 하였는데, 이를 해결해주는게 FreeNX이다.
FreeNX는 SSH를 사용해서 제어 하기 때문에, Linux 시스템이 로그인 되어 있지 않더라도 접근할수 있다.

2. 서버 설치.
$> yum install nx freenx

3. Key-based authentication
$> cd /etc/nxserver
$> cp node.conf.sample node.conf
$> vi node.conf
   ENABLE_PASSDB_AUTHENTICATION="0"  >> ENABLE_PASSDB_AUTHENTICATION="1"
   :wq
$> nxserver --adduser 사용자이름  // 사용자이름에 Login에 사용할 ID를 입력한다.
$> nxserver --passwd 사용자이름 // 위에서 생성한 사용자이름을 입력한 후 Password를 입력한다.
$> nxserver --stop
$> nxserver --start
$> service sshd restart 
$> cat client.id_dsa.key // Client에서 사용할 Key값으로 내용을 복사한 후 Client Key 항목에 복사한다.

4. Windows Client 설치.
http://www.nomachine.com/download-client-windows.php 에서 Client 프로그램을 다운로드 한다.
프로그램을 설치한 후 실행한다.
Configure 창을 띄운 후 Key버튼을 클릭 한다.

내용에 /etc/nxserver/client.id_dsa.key 항목의 내용을 입력 한다.

저장 후 Linux 서버로 접속 한다.
Posted by 다크쌍피
Programming & Tools/Linux2009. 8. 5. 13:44

1. 설치 Software.
Aphache, PHP, MySQL

2. 구버전 제거.

RPM을 통해 이미 설치가 되어 있다면 삭제한다.
$> rpm -qa httpd php mysql   // 설치가 되어 있는지 확인
httpd-2.2.3-11.el5_1.centos.3
mysql-5.0.45-7.el5
php-5.1.6-20.el5_2.1

$> yum remove httpd php mysql –y  // RPM으로 설치된 APM 삭제

3. Service Daemon 중지.

httpd, mysqld 가 실행 중이라면, 중지 시킨다.
$> service httpd stop
$> service mysqld stop

4. 기타 라이브러리 설치.

APM을 설치하기 전에 APM설치에 필요한 기타 라이브러리를 설치한다.
$> yum install zlib libxml2 curl libjpeg libpng freetype gd gcc flex -y

5. APM Source를 다운로드.

각각의 소스를 다운 받는다. (httpd-2.2.9.tar.gz, mysql-5.0.67.tar.gz, php-5.3.0.tar.gz, php-5.2.10.tar.gz)
$> mkdir /usr/local/src/APM
$> cd /usr/local/src/APM
$> tar -xzvf httpd-2.2.9.tar.gz
$> tar -xzvf mysql-5.0.67.tar.gz
$> tar -xzvf php-5.3.0.tar.gz  // 5.3.0은 ZeroboardXe XpressEngine 1.2.4 설치 후 FTP설정에서 Error가 난다.
$> tar -xzvf php-5.2.10.tar.gz


6. 설치 할 디렉토리 생성.

$ mkdir /usr/local/APM
$ mkdir /usr/local/APM/mysql
$ mkdir /usr/local/APM/apache
$ mkdir /usr/local/APM/php

7. MySQL 설치.

가. Install
$> cd /usr/local/src/APM/mysql-5.0.67
$> ./configure --prefix=/usr/local/APM/mysql --with-client-Idflags=-all-static --with-mysqld-Idflags=-all-static --with-charset=euckr --without-debug --enable-assembler --with-mysqld-user=mysql --enable-thread-safe-client --with-extra-charsets=all
 * --enable-thread-safe-client 옵션은 PHP와 같아야 한다.
$> make
$> make install

나. 환경 설정

MySQL의 환경 설정은 /etc/my.cnf 에 설정이 되어 있다. MySQL에서는 컴퓨터의 사양에 따라 설정해놓은 예제파일이 /usr/local/src/APM/mysql-5.0.67/support-files 에 있다.

$> cp /usr/local/src/APM/mysql-5.0.67/support-files/my-medium.cnf /etc/my.cnf  //컴퓨터 사양이 괜찮다면, my-huge.cnf를 복사한다. 
$> /usr/local/APM/mysql/bin/mysql_install_db --user=mysql

a) 권한 설정.
$> chown -R root /usr/local/APM/mysql   // 권한을 바꿔 줘야 한다.
$> chown -R mysql /usr/local/APM/mysql/var
$> chgrp -R mysql /usr/local/APM/mysql

b) 라이브러리 설정.
$> vi /etc/ld.so.conf.d/mysql.conf  // MySQL Shared Library를 사용하기 위해서 생성.
   /usr/local/APM/mysql/lib/mysql  // 설치된 디렉토리위치를 입력.
        :wq
 
$> ldconfig // Shared Library를 다시 로딩한다.
$> cp /usr/local/APM/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
$> cd /etc/rc.d/init.d
$> chmod 755 mysqld
$> /etc/rc.d/init.d/mysqld start  // MySQL Daemon을 실행한다.
#####] starting MySQL        [OK]

c) 런 레벨 설정.
$> chkconfig --level 2345 mysqld on  //실행 옵션 및 런 레벨을 설정한다.
$> chkconfig --list | grep mysqld  // 2.3.4.5 레벨이 활성화 되었는지 확인한다.
$> ./mysqld restart // MySQL Daemon을 다시 실행한다.

d) DB 생성.
$> cd /usr/local/APM/mysql/bin
$> ./mysqladmin -u root password 패스워드  // 패스워드자리에 원하는 패스워드 설정.
$> mysql -u root –p
Enter password: ****
mysql> CREATE DATABASE DB명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; // DB명에 원하는 데이터 베이스 이름을 입력한다.
mysql> GRANT ALL PRIVILEGES ON DB명.* TO root@localhost  IDENTIFIED BY '패스워드'; // DB 명에 위에서 생성한 DB명을 입력하고 패스워드자리에 설정할 패스워드를 입력한다.

8. Apache 설치.

가. Install
$> cd /usr/local/src/APM/httpd-2.2.9
$> ./configure --prefix=/usr/local/APM/apache --enable-proxy --enable-rewrite --enable-so --enable-speling --enable-ssl --enable-vhost-alias --with-mpm=worker --enable-mods-shared=all --enable-deflate

$> make
$> make install

a) configure file 수정
$> cd /usr/local/APM/apache/conf
$> vi httpd.conf

  DirectoryIndex index.html index.php index.htm //  index.php index.htm 추가

  AddType application/x-compress .Z // 없으면 추가
  AddType application/x-gzip .gz .tgz // 없으면 추가

  AddType application/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc  //추가
  AddType application/x-httpd-php-source .phps //추가

나. 자동 실행 런 레벨 설정.
$> /etc/rc.d/init.d/httpd start  // Apache Daemon을 실행한다.
$> chkconfig --level 2345 httpd on  //실행 옵션 및 런 레벨을 설정한다.
$> chkconfig --list | grep httpd  // 2.3.4.5 레벨이 활성화 되었는지 확인한다.
$> ./httpd restart // Apache Daemon을 다시 실행한다.

9. PHP 설치.

가. Install
$> cd /usr/local/src/APM/php-5.2.10
$> ./configure --prefix=/usr/local/APM/php --with-apxs2=/usr/local/APM/apache/bin/apxs --with-zlib-dir --with-gd --with-png-dir --with-gmp --with-libxml-dir=/usr/lib --with-xsl  --disable-debug --disable-rpath --with-iconv --enable-magic-quotes --enable-bcmath --enable-gd-native-ttf --enable-sysvsem --enable-sysvshm --enable-wddx --with-pic --enable-inline-optimization --enable-mbstring --enable-ftp --disable-debug --with-jpeg-dir --with-freetype-dir --enable-gd-native-ttf --enable-exif --with-mysql=/usr/local/APM/mysql --with-mysqli=/usr/local/APM/mysql/bin/mysql_config --enable-sockets --enable-sigchild --without-pear

* --without-pear 옵션을 주지 않으면, 특정 라인을 처리 할 수 없다고 나온다. PHP Bug

$> make
$> make install
$> cp /usr/local/APM/php/bin/php /usr/bin
$> php -v //  버전 확인

10. Trouble Shooting
가. Q : 제로보드 XE설치시 FTP정보 입력에서 더이상 진행이 안될때.
     A : PHP 라이브러리 컴파일 시 --enable-safe-mode 옵션을 주지 않고 컴파일 한다.

Posted by 다크쌍피