1. 스위치 모드 설정 - trunk

2. VLAN 설정

3. 엑세스 모드 설정/ 포트를 Vlan에 할당

4. PC에 IP, DG할당

5. 라우터에 sub-interface 설정

 

Switch 2950 , Router 2621 사용


 

 

12번 - 트렁크모드로 바꿔야함

 

conf ter

int fa0/12

switchport mode trunk

//ISL or 801.1q   캡슐화방식이 있음 , 트렁크모드에만 변경

switchport trunk encapsulatuon dot1q //801.1q

end

 

sh int trunk //이걸로 확인

 

vlan datavase //config모드 아님 vlan 1은 디폴트로 이미 되있음

vlan 2 name AT

vlan 3 name BT

vlan 4 name C

end

 

conf ter

int range fa0/1 - 11

switchport mode access

exit

int fa0/1

switchport access vlan 1

int fa0/2

switchport access vlan 2

int fa0/3

switchport access vlan 3

int fa0/4

switchport access vlan 4

end

 

sh vlan // 확인

 

 

PC 설정

pc1

ipconfig /ip 192.168.1.2 255.255.255.0

ipconfig /dg 192.168.1.1

 

pc2

ipconfig /ip 192.168.2.2 255.255.255.0

ipconfig /dg 192.168.2.1

 

pc1 - pc2 ping test

ping 192.168.2.2

-> request timed out  // vlan이 다르므로 통신이 안됨

 

 

 

라우터 설정

 

conf ter

int fa0/0

ip addre 192.168.1.1 255.255.255.0

no shut

int fa0/0.2 //서브 인터페이스

ip address 192.168.2.1 255.255.255.0

encapsulation dot1q 2 // 끝에 2번은 vlan 2번을 의미함

나머지 디폴트게이트도 이것과 같게 ㄱㄱ 0.4 까지

 

이제 ping 때리면 통신가능함

 

 

*맵에 대해서

라우터는 fa0/0 이 스위치와 연결

스위치는 fa0/1 은 pc1 ,fa0/2는 pc2 ... 4까지 하고 fa0/12는 라우터랑 연결

(스위치는 fa0/1부터 시작함)

fa0/12번은 vlan 정보가 왔다갔다 하는 경로이기 때문에 트렁크모드로 설정

나머지는 access 로 설정

스위치에 달려있는 pc들의 디폴트 게이트는 라우터의 fa0/0에 다 넣어서

vlan으로 나눠진 네트워크도 통신을 하게 만들어줌

Posted by Triton
,

서브네팅 표

Computer/Network 2008. 11. 17. 09:12
 
 
 와일드카드마스크
 2진수표시 
 설명
 0.0.0.0  00000000.00000000.00000000.00000000   IP 주소가 완전일치 되어야함.
 0.0.0.255  00000000.00000000.00000000.11111111   처음24비트만 일치하면됨.
 0.0.255.255  00000000.00000000.11111111 .11111111    처음16비트만 일치하면됨.
 0.255.255.255  00000000.11111111 .11111111 .11111111    처음8비트만 일치하면됨.
 255.255.255.255  11111111 .11111111 .11111111 .11111111   비교할 필요없이 자동으로 매치된것으로간주함.
 0.0.15.255  00000000.00000000.00001111.11111111    처음20비트만일치하면됨.
 0.0.3.255  00000000.00000000.00000011.11111111    처음22비트만 일치하면됨.
 32.48.0.255  00100000.00110000.00000000.11111111    3,11,12번째비트+마지막 8비트를 제외한 모든 비트가 일치해야함.
 
Posted by Triton
,
Iterator, Enumeration은 둘다 모두 자바에서 제공하는 컬렉션에 대해 각 컬렉션의 항목들을 순차적으로 접근하는데 사용한다.

차 이점은 Enumeration의 경우 자바의 초기버젼에서 개발되었습니다. 자바는 jdk1.2, 즉 자바2에서 많은 변화가 생겼는데, 그중에 하나가 컬렉션 클래스(Vector, List, Map, Set...)들을 컬렉션프레임웍 이라는것으로 관리하는것이다.

이때, 컬렉션프레임웍에서는 Iterator라고 해서, Enumeration의 기능을 확장해서, Collection인터페이스를 상속받은 모든 컬렉션(List, Set, Vector.)에서 Enumeration을 사용가능하게 하였다.

정 리하면, Enumeration는 자바초기버젼에서 제공되는것으로 Hashtable, Vector 에서 사용가능하다. Iterator는 jdk1.2에서 제공되는 것으로 Collection인터페이스를 구현상속한 모든 컬렉션 클래스에서 사용가능하다.

덧붙여서, Iterator는 remove()라는 메소드가 존재하여서, 원본 컬렉션의 항목을 삭제할수 있습니다.

예를 들면,

//Enumeration 사용법

Vector v = new Vector();
...

Enumeration e = v.elements();
while(e.hasMoreElements())
{
//항목들을 모두 콘솔창에 출력합니다.
System.out.println((String)e.nextElement());
}


//Iterator 사용법

HashSet set = new HashSet();
...

Iterator iter = set.iterator();
while (iter.hasNext()) {
i++;
//항목들을 모두 콘솔창에 출력합니다.
System.out.println(i + ":" + iter.next());
}
Posted by Triton
,

[ Enumeration ]

Computer/JAVA 2008. 11. 15. 12:52



java.util 
Interface Enumeration

1. 사용법

------------------------------------------------------------
for ( Enumeration e = v.elements ( ) ; e.hasMoreElements ( ); ) 
{
System.out.println ( e.nextElement ( ) );
}
------------------------------------------------------------
Posted by Triton
,

[ 벡터 Vector ]

Computer/JAVA 2008. 11. 15. 12:51


가변적, 이종간 객체 배열
크기를 알수 없는 데이타의 처리에 유용하다.

0. 자주 사용되는 메소드
-------------------------------------------------------------

Vector ( ):  초기용량이 10인 빈벡터의 생성. 초과시마다 두배 증가.

add ( Object object ):  주어진 객체를 추가합니다.   


Object get ( int index ): 주어진 위치에 있는 객체를 얻습니다.      


int size (): 벡터의 크기를 얻습니다.  


trimToSize ():  들어있는 데이타 크기 만큼으로 용량을 감소 시킨다.


void set ( int index, Object object ): 주어진 위치에 값을 덮어써 넣는다.  


void insertElementAt ( Object object, int index ): 주어진 위치에 객체를 삽입합니다. 밀려 늘어난다.


void removeElementAt ( int index ): 주어진 위치에 있는 객체를 제거합니다. 당겨 줄어든다.


Object [] toArray ( ): 배열로 전환한다.

-------------------------------------------------------------

1. 사용법
------------------------------------------------------------------------

Vector vec = new Vector ( );//기본 용량 10개, 초과시 두배씩 증가


Vector vec = new Vector ( 100 );//초기 용량 1000개, 초과시 100개씩 증가


Vector vec = new Vector ( 100, 10 );//초기 용량 100개, 초과시 10개씩 증가

vec.add ( "안녕" ); //객체 추가


vec.add ( 2, "안녕" ); //3번째 위치에 객체 추가하고 뒤로 한칸씩 밀린다.


vec.addElement ( "안녕" ); 객체 추가

Object object = (Object) vec.get ( 2 ); //3번째 객체 불러오기


Object object = (Object) vec.elementAt ( 2 ); //3번째 객체 불러오기


List list = vec.subList ( 2, 5 ); //1부터 4까지의 요소 추출한다.

vec.set ( 2, "안녕" ); //3뻔째 위치의 객체를 주어진 객체로 대체한다.

int max = vec.capacity ( ); //용량 구하기(데이타를 넣을 수 있는 갯수)


int size = vec.size ( ); //크기 구하기(데이타가 들어있는 갯수)


int free = vec.capacity ( ) - vec.size ( ); //비어 있는 용량 구하기


vec.ensureCapacity ( 150 ); //용량이 150보다 작으면 150으로 증가, 아니면 무변화.


vec.setSize ( 50 ); //크기를 50으로 설정. 나머지는 null로 채워진다.


vec.trimToSize ( ); //용량을 현재 크기에 맞도록 압축한다.


vec.remove ( 2 ); //3번째 객체를 삭제한다.


vec.removeAll ( vec.subList ( 2, 5 ) ); //1부터 4까지의 요소를 삭제한다.


vec.clear ( ); //모든 요소를 삭제한다.

//불러오기 1 (컬렉션)
Iterator iter = vec.iterator ( );


while ( iter.hasNext ( ) )
  System.out.println ( (String) iter.next ( ) );

//불러오기 2 (벡터 사이즈)
for ( int i = 0; i < vec.size ( ); i++ )
  System.out.println ( (String) vec.get ( i ) );

//불러오기 3 (배열)
Object [] aObject = vData.toArray ( );
for ( int i = 0; i < aObject.length; i++ )
  System.out.println ( (String) aObject [i] );

//불러오기 4 (배열)
String [] aObject = new String [ vec.size ( ) ];
aObject = vec.toArray ( aObject );
for ( int i = 0; i < aObject.length; i++ )
  System.out.println ( (String) aObject [i] );


------------------------------------------------------------------------

2. 예제
-------------------------------------------------------------
import java.util.*;

   Vector vec = new Vector ();

     vec.add (new Integer (1));
     vec.add (new Integer (2));
     vec.add (new Integer (3));

   int sum = 0;
        for ( int i = 0; i < vec.size (); i++ )
            sum += ((Integer) vec.get (i)).intValue ();
   
   int value = sum;   // 6
-------------------------------------------------------------
벡터에 들어 갈 때 object로 자동변환 되어 들어가므로 빼낼 때는 적합한 형으로 변환 시켜주어야 한다.

-------------------------------------------------------------
private void Body(HttpServletRequest req, HttpServletResponse res) {
  String code = "";
  String intro = "";
  int type = 0;
  
  Vector v = Detail(req);
  Iterator i = v.iterator();

  Integer a = (Integer)i.next();
  type = a.intValue();
  code = (String)i.next();
  intro = (String)i.next();
}     

private Vector Detail(HttpServletRequest req) {
  int type = 0;
  String code = "";
  String intro = "";
  
  //--------중간생략

  Vector v = new Vector();
  v.addElement(new Integer(type));
  v.addElement(new String(code));
  v.addElement(new String(intro));
  return v;
}
-------------------------------------------------------------

3. 클래스/메소드
-------------------------------------------------------------


void add(int index, Object element): 객체를 주어진 위치에 추가합니다.  


boolean add(Object o): 객체를 추가합니다.   


boolean addAll(Collection c): 주어진 콜렉션에 있는 모든 객체를 추가합니다.


boolean addAll(int index, Collection c): 주어진 콜렉션에 있는 모든 객체를 주어진 위치에 추가합니다.

void addElement(Object obj): 주어진 객체를 추가합니다.

int capacity(): 이객체의 용량을 얻습니다. 

void clear(): 모든 객체를 제거합니다.  

boolean contains(Object elem): 주어진 객체를 포함하고 있는지를 얻습니다.  

boolean containsAll(Collection c): 주어진 콜렉션 내의 객체들을 포함하고 있는지를 얻습니다. 


void copyInto(Object[] anArray):  

Object elementAt(int index): 주어진 위치에 있는 객체를 얻습니다.  

Enumeration elements(): 이 벡터에 대한 Enumeration 객체를 얻습니다.

void ensureCapacity(int minCapacity): 용량을 재설정합니다.  

Object firstElement(): 첫 번째 객체를 얻습니다.   

Object get(int index): 주어진 위치에 있는 객체를 얻습니다.  

int indexOf(Object elem): 주어진 객체의 위치를 얻습니다.  

int indexOf(Object elem, int index): 주어진 위치에서부터 시작하여 주어진 객체가 처음 나오는 위치를 얻습니다.


void insertElementAt(Object obj, int index): 주어진 위치에 객체를 삽입합니다.           

boolean isEmpty(): 비어있는지를 얻습니다.      

Object lastElement(): 마지막 객체를 얻습니다.  

int lastIndexOf(Object elem): 주어진 객체의 마지막 위치를 얻습니다.  

int lastIndexOf(Object elem, int index): 주어진 위치부터 마지막으로 나오는 객체의 위치를 얻습니다.

Object remove(int index): 주어진 위치의 객체를 제거합니다.  

boolean remove(Object o): 주어진 객체를 제거합니다.   

boolean removeAll(Collection c): 콜렉션에 있는 모든 객체를 제거합니다.  

void removeAllElements(): 모든 객체를 제거합니다. 

boolean removeElement(Object obj): 주어진 객체를 제거합니다.  

void removeElementAt(int index): 주어진 위치에 있는 객체를 제거합니다.  

boolean retainAll(Collection c): 콜렌션에 있는 객체들을 보존합니다.   

Object set(int index, Object element): 주어진 위치의 객체를 대체합니다. 

void setElementAt(Object obj, int index): 주어진 위치의 객체를 설정합니다.  

void setSize(int newSize): 벡터의 크기를 설정합니다.  

int size(): 벡터의 크기를 얻습니다. 


List subList(int fromIndex, int toIndex): 주어진 위치 사이의 리스트를 얻습니다.     

Object[] toArray(): 벡터를 객체 배열로 얻습니다.   


Object[] toArray(Object[] a): 벡터를 구어진 객체 배열에 저장합니다.  
Posted by Triton
,


키와 값의 쌍으로 이루어진 객체. 객체로 객체를 인덱스하는 배열.

1. 사용법

  import java.io.*;
  import java.util.*;
  
  // 해쉬테이블에 스트링 객체 넣기.
  Hashtable hash = new Hashtable ( );
  hash.put ( "kim", new Integer ( 80 ) );
  hash.put ( "lee", "jongwoo" );
  
  // 해쉬테이블에 스트링 배열 넣기
  String Acc [] = { "ajdjld", "sjdsjkd" };
  HashTable hash = new HashTable ( );
  hash.put ( "Acc", Acc );
  
  //읽기1
  int value = (Integer) hash.get ( "kim" );
  String name = (String) hash.get ( "lee" );
  
  //읽기2
  HttpSession session = req.getSession ( );
  
  Enumeration e = hash.keys ( );
  String key;
  while ( e.hasMoreElements ( ) ) 
  {
    key = (String) e.nextElement ( );
    session.putValue ( key, (String) hash.get ( key ) );
  }

2. 함수

  void clear():           해시테이블의 모든 원소를 제거합니다.

  boolean contains(Object value):   주어진 값을 포함하고 있는지를 얻습니다.


  boolean containsKey(Object key):  주어진 키를 포함하고 있는지를 얻습니다.


  boolean containsValue(Object value): 주어진 값 포함하고 있는지를 얻습니다.


  Enumeration elements():       원소에 대한 Enumeration 객체를 얻습니다.


  Object get(Object key):       주어진 키에 해당하는 값을 얻습니다.


  boolean isEmpty():        해시테이블이 비어있는 지를 얻습니다.


  Enumeration keys():         키들에 대한 Enumeration 객체를 얻습니다.


  Object put(Object key, Object value): 주어진 키를 이용하여 값을 저장합니다.


  Object remove(Object key):    주어진 키에 해당하는 원소를 제거합니다.


  int size():             해시테이블의 크기를 얻습니다.


  Collection values():        해시테이블에 포함되어 있는 값들에 대한 콜렉션 객체를 얻습니다.
Posted by Triton
,

InetAddress 클래스는 자바 플랫폼이 처음 출시된 이래로 줄곧 사용되어 왔으며, 이 클래스의 역할은 인터넷 프로토콜(IP) 주소를 통해 호스트의 ID를 알려주는 것이다. 다시 말해서, 가령 yahoo.com 같은 이름을 입력하면 InetAddress 클래스의 도움으로 그 IP 주소를 알아낼 수 있다.

InetAddress 클래스 디자인은 다소 기묘해 보일 수도 있다. 클래스에는 static 선언만 있고 public 생성자가 없으며, 인스턴스는 불변, 즉 일단 클래스의 인스턴스를 가지면 변경할 수 없다. 하지만 그 디자인은 자바 보안의 목적을 위한 것으로서 사용자는 검색 간의 결과를 변경할 수 없다.

1. InetAddress.getLocalHost()
    - 현재 프로그램이 진행 중인 컴퓨터의 로컬 주소를 되돌려 주는 메소드
2. InetAddress.getByName(String host)
    - 호스트명이 지정된 호스트의 IP 주소를 결정한다. 호스트명은 도메인네임이나 IP일 수 있다.
3. InetAddress.getByAddress(Byte[] addr)
    - 그대로의 IP 주소를 가지는 InetAddress 오브젝트를 돌려준다.
4. public Byte[] getAddress()
    - 주소를 Byte 배열로 얻는 메소드.
5. InetAddress.getAllByName(String host)
   - 해당 도메인과 매핑되어있는 모든 주소를 되돌려 주는 메소드.
6. InetAddress.getByAddress(String host, Byte[] addr)
   - 지정된 호스트명 및 IP 주소에 근거해 InetAddress 을 작성한다.

Posted by Triton
,
인코딩 문제로 인하여 윈도우에서 압축된 Zip 파일을 리눅스에서 압축 해제하면 한글 파일명이 깨지는 문제가 발생합니다. 윈도우에서는 MS949 인코딩을 사용하지만, 리눅스에서는 UTF-8 인코딩을 사용하기 때문이죠.
그래서 많은 리눅서들이 한글 인코딩 패치가 된 unzip을 사용하고 있습니다.

하지만, 한글 인코딩 패치를 하지 않고도 한글 파일명이 깨지는 문제 없이 Zip 파일을 압축 해제 할 수 있는 간단한 방법이 있습니다. unzip 명령에 -O CP949 옵션을 주는 방법이죠.
즉, 다음과 같은 명령어를 입력하면, 윈도우에서 압축된 Zip 파일을 리눅스에서도 한글 파일명이 깨지는 문제 없이 풀 수 있습니다.

unzip -O CP949 xxx.zip(Zip 파일명)

이런 간단한 방법이 있다는 것을 제가 미리 알았다면, JZip 프로그램은 안 만들었을지도 모르겠네요. ^^
Posted by Triton
,
먼저 sensors-applet를 설치한다.
# apt-get install sensors-applet

add to pannel에서 hardware sensor monitor를 패널에 추가한다.

다음 lm-sensors를 설치한다.

yum install lm-sensors
혹은 apt-get install lm-sensors

아래구문을 친다.

# sensors-detect

설정하면서 yes하면 최종적으로 아래와 같은 구문이 뜬다.

#----cut here----
# I2C adapter drivers
i2c-piix4
i2c-isa
# I2C chip drivers
w83781d
eeprom
#----cut here----

그러면 위의 장치에 대해서 다음과 같이 친다.

# modprobe w83781d

그리고

#modprobe eeprom

등등

다음 아래 명령을 준다(lm-sensor 실행)

# sensors

그러면 x를 재실행하면 패널에 온도감시가 뜰것이다.


Posted by Triton
,

gconftool-2 --shutdown
rm -rf ~/.gconf/apps/panel
pkill gnome-panel
Posted by Triton
,