kh교육

(2025070408) VLSM & html&php

boangod 2025. 7. 4. 17:36

VLSM

- 서로 다른 네트워크 크기의 네트워크를 나눌 때 서로 다른 크기로 분할하는 것. (네트워크 규모에 맞게 분할하는 것.)

보통 규모가 큰 네트워크부터 ip를 할당해 줍니다. ip를 남겨둔다고 하더라도 쓸 수가 없기 때문에 컴퓨터 수가 적어도 그냥 전부 ip를 나눠 줍니다.(ip를 적게 줄 수는 없지만 크게는 줄 수 있다.)

 

예시

 

네트워크를 2개로 나누기.

A :

네트워크 범위 :1.1.1.0 ~ 1.1.1.127

네트워크 주소:1.1.1.0

gateway주소: 1.1.1.1

B :

네트워크 범위 :1.1.1.128 ~ 1.1.1.255

네트워크 주소:1.1.1.128

gateway주소: 1.1.1.129

 

 

네트워크를 4개로 나누기.

A :

네트워크 범위 :1.1.1.0 ~ 1.1.1.63

네트워크 주소:1.1.1.0

gateway주소: 1.1.1.1

B :

네트워크 범위 :1.1.1.64 ~ 1.1.1.127

네트워크 주소:1.1.1.64

gateway주소: 1.1.1.65

C :

네트워크 범위 :1.1.1.128 ~ 1.1.1.191

네트워크 주소:1.1.1.128

gateway주소: 1.1.1.129

D :

네트워크 범위 :1.1.1.192 ~ 1.1.1.255

네트워크 주소:1.1.1.192

gateway주소: 1.1.1.193

 

 

이제 네트워크를 3개로 나눠보겠습니다.

 

네트워크를 3개로 나누기.

A :

네트워크 범위 :1.1.1.0 ~ 1.1.1.127

네트워크 주소:1.1.1.0

gateway주소: 1.1.1.1

서브넷 마스크 : 255.255.255.128

C :

네트워크 범위 :1.1.1.128 ~ 1.1.1.191

네트워크 주소:1.1.1.128

gateway주소: 1.1.1.129

서브넷 마스크 : 255.255.255.192

D :

네트워크 범위 :1.1.1.192 ~ 1.1.1.255

네트워크 주소:1.1.1.192

gateway주소: 1.1.1.193

 

 

 

어떤 특정구간을 묶는건 불가능합니다.

 

예시

1.1.1.0 ~ 1.1.1.127 (가능)

1.1.1.130 ~ 1.1.1.163(불가능)

 


 

ICMP

- 인터넷 제어 메시지. 네트워크 관리 및 오류 보고를 위해 사용되고, 특정 프로그램에 의해 호출되었을 때만 동작, Message 형식으로 정보를 알립니다.  주로 시스템 및 경로확인을 위해 사용됩니다. 세션이랑 개념은 없습니다.

하지만 요즘 대부분은 방화벽 수준에서 DROP 됩니다.

ping과 traceroute를 주로 사용합니다.

drop :  패킷을 버리고, 응답 없습니다.

deny : 거절응답을 보냅니다. 

 

 

arp

- 자신의 IP, Mac주소, 그리고 수신 측IP주소를 알고 있지만 수신 측 Mac주소를 모를 때 사용하는 프로토콜입니다.

arp요청을 하면 수신 측이 응답할 때 자신의 Mac주소를 알려줍니다.

 

arp는 상위계층이 ip로 통신을 시도하는데 Mac주소를 모르면 ip에 의해 자동으로 호출이 됩니다.

arp 요청 : 브로드캐스트

arp 응답 : 유니캐스트

하지만 저렇게 응답을 하는 것이 규정으로 정해져 있는 것은 아닙니다.

rarp

- 자신의 Mac주소는 알고 있지만 ip주소를 모를 때 사용하는 프로토콜입니다.(지금은 거의 사용하지 않습니다.)

 


윈도우 네트워크드라이브 연결

수업시간에 사용하는 dal서버를 이용할 때 window에 있는 C나 D를 이용하는 것처럼 (실제 물리적인 디스크처럼) 사용하기 위해 설정하려고 합니다.

 

smbpasswd

┖ 윈도우 로컬계정이 사용하는 비밀번호라고 인식을 합니다. 사용하려면 해당 리눅스 계정이 있어야 합니다.

passwd

┖ 리눅스 사용자의 비밀번호를 바꿈.

 

비밀번호를 바꿔주고 window에 와서 네트워크를 눌러서 주소창에 \\192.168.10.11을 입력합니다. 그렇게 되면 제 계정인 ast12가 뜨게 되고 그 폴더를 우클릭 → 네트워크드라이브에 연결을 눌러주면 이제 컴퓨터 전원을 켜서 접속을 할 때마다 사용 가능합니다.

 

 


 

html 연습

html - 문서 안에 이미지나 텍스트를 클릭하면 지정한 파일이나 주소로 이동합니다.

  • 페이지 이동시에는 반드시 디렉토리명을 기술한다.
  • 하이퍼링크는 상대경로로 주로 사용함.

<a href="파일 or 주소"> 텍스트 or <img src="이미지 파일"></a>

② 링크 색상 <body link="색상" vlink="색상" alink="색상">

link : 기본 색상

vlink : 방문 기록이 있는 사이트

alink : 마우스 클릭했을 때 색상

 

예시(링크)

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ex01.html</title>
</head>
<a href="hlink1.html">링크 페이지이동</a><br>
<a href="../hlink2.html">상위 디렉토리 페이지이동</a><br>
<a href="./link/hlink3.html">하위 디렉토리 페이지이동</a><br>
<a href="https://boangod.tistory.com/">사이트 이동</a><br>
</body>
</html>

 

예시(이미지)

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ex01.html</title>
</head>
<a href="https://boangod.tistory.com/"><img src="msh.jpg"></a><br>
<a href="https://kh-academy.co.kr/main/main.kh"><img src="switch.png"></a><br>
</body>
</html>

 

php

 

 

<??>

- 프로그램의 시작과 끝을 나타냅니다.. PHP가 프로그램 코드 부분을 나타내는 방법입니다.

 

echo = (””)

- 사이의 내용을 출력하는 출력 함수. 변수를 출력할 때는 = 출력{}

 

$a = 1;

  • 변수는 항상 $ 사용합니다.
  • 변수명은 문자, 숫자, _(밑줄)로 구성됩니다. 
    ㄴ 첫 글자는 반드시 문자로 시작합니다.
    ㄴ 변수명에 한글을 쓸 수 있으나 사용하지 않습니다.(절대)
  • 변수명은 대소문자를 구별합니다.

 

데이터 타입

스칼라(scalar) 타입 정수(integer)
실수(float, double)
문자열(string)
불린(boolean)
123, -231, Ox123,
1.23, 1.2E15
"ABC", 'abc', '무궁화'
TRUE(1), FALSE(NULL,0)
다중(mixed) 타입 배열(array)


객체(object)
여러 개의 값을 하나의 변수에 저장

속성과 메소드로 구성되는 사용자 정의 데이터 타입

 

원래 값이 있는데 다른 값을 집어넣으면 이전 값은 없어짐.

 

 

캐스팅연산자 = 형 변환연산자(개념만 일단 알고 있자.)

정수형 (int), (integer)
실수형 (real), (float), (double)
문자열형 (string)
불린형 (bool), (boolean)
이진 문자열형 (binary)
배열형 (array)
개체형 (object)

 

 

인용부호

\n 개행 문자 (newline)
\r 개행 문자(carriage)
\t 탭 문자(horizontal tab)
\\ \ 문자
\$ $ 문자
\" " 문자

 

산술연산자 

가장 기본적인 수학 연산자(+, -, *, %,/)

연산자 설명
+ 덧셈
- 뺄셈
* 곱셈
% 나눗셈
/ 나머지

 

 

대입 연산자 

우변의 값을 좌변에 대입하는 연산자 (프로그램을 읽기 쉽게 하기 위해 사용)

연산자 설명 산술 연산자와의 관계
= 우변의 값을 좌변에 대입한다. $a = $b
+= 우, 좌변의 더한 값을 좌변에 대입한다. $a += $b → $a = $a + $b
-= 우변에서 좌변을 뺀 값을 좌변에 대입한다. $a -= $b → $a = $a - $b
*= 우, 좌변의 곱한 값을 좌변에 대입한다. $a *= $b → $a = $a * $b
/= 우변을 좌변으로 나눈 값을 좌변에 대입한다. $a /= $b → $a = $a / $b
%= 우변을 좌변으로 나누어 나머지 값을 좌변에 대입한다. $a %= $b → $a = $a % $b

 

 

 

증감 연산자

읽기 쉽게 하기 위해 사용, 헷갈리면 그냥 그대로 써도 무방하지만 나중에 익숙해지면 증감연산자가 더 읽기 쉬워질 수 있다.

증감 연산자 산술 연산자 증감 연산자 산술 연산자
$b = ++$a $a = $a + 1
$b = $a
$b = --$a $a = $a - 1
$b = $a
$b = $a++ $b = $a
$a = $a +1
$b = $a-- $b = $a
$a = $a - 1

 

 

관계연산자 

관계 연산자는 두 개의 값을 비교하는 연산자, 실무에서는 두 개짜리 연산자를 주로 사용

연산자 설명
== 좌변과 우변의 값이 같으면 TRUE
=== 좌변과 우변의 값과 데이터 타입이 모두 같으면 TRUE
!= 좌변와 우변의 값이 다르면 TRUE
!== 좌변와 우변의 값과 데이터 타입이 모두 다르면 TRUE
> 좌변의 값이 우변 값 보다 크면 TRUE
< 좌변의 값이 우변 값 보다 작으면 TRUE
>= 좌변의 값이 우변 값 보다 크거나 같으면 TRUE
<= 좌변의 값이 우변 값 보다 작거나 같으면 TRUE

 

 

논리 연산자

'!'(논리 부정)을 제외하고 모두 좌변과 우변의 논리 값을 연산하고, 비교연산자와 보통 같이 쓰입니다.

연산자 사용 예 설명
&& $a && $b $a와 $b가 모두 TRUE이면 TRUE
|| $a || $b $a와 $b중 하나이상이 TRUE이면 TRUE
xor $a xor $b $a,$b 논리 값이 서로 다르면 TRUE
! !$a $a가 TRUE이면 FALSE, $a가 FALSE이면 TRUE
and $a AND $b &&와 결과는 같으나 연산자 우선순위가 낮다.
or $a or $b ||와 결과는 같으나 연산자 우선순위가 낮다.

xor(중요) - 암호 알고리즘에서 씀.

! - 리버스 연산자

and연산자, or연산자는 연산자 우선순위가 낮다.(우선순위 몰라도 프로그램 보면 알 수 있게 코드 짜기)

 

문자열 연산자

연산자 사용 예 설명
. $c = $a.$b 두 개의 문자열을 연결한다.(연결 연산자)
.= $c .= 'ing' 문자열을 추가한다.

 

 

$b = 1. 2;

 (스페이스바).(스페이스바) 면 문자열로 해석한다. 그래서 위에 코드는 잘못된 코드.

$b = "1". "2"; 

해주는 것이 좋음.

 

문자열을 사용할 때는 반드시 따옴표 하기.

 

 

 

연산자 우선순위

연산자를 두 개 이상 사용하는 경우 연산자 우선순위에 따라 연산 순서가 결정됩니다.

(예시)

2 + 2 * 2 가 6일 수도 있고 8일 수도 있습니다. 코드 작성자의 의도와 내가 생각하는 의도가 다를 수 있기 때문에 

(2+2)*2 인지 2+(2*2)인지 확실하게 코드를 작성해야 합니다.

연산자 우선순위 연산자
1 ++, --
2 !
3 *, /, %
4 +, -, .
5 <, <=, >, >=
6 ==, ===, !=, !==
7 &&
8 ||
9 =, +=, -=, *=, /=, %=, .=
10 and
11 xor
12 or

 

form

post방식 = 입력한 값을 전달

get방식 = url방식으로 값 전달

1-5.html

<html>
<head>
<title>1-5.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<form method="post" action="1-5.php"> 
피제수 : <input type="text" name="a"><br>
제수 : <input type="text" name="b"><br> 
<input type="submit" name="확인" value="확인"> 
<input type="reset" name="취소" value="취소"><br>
</form>
</html>

 

 

1-5.php

<?
$a = $_POST["a"];  // a 내가 위에서 저장한 이름
$b = $_POST["b"]; // b 내가 위에서 저장한 이름
$mod = $a % $b;           // 나머지 구하기
$div = ($a - $mod) / $b;  // 몫 구하기
echo("{$a}를 {$b}로 나눈 몫은 {$div}이고<br> 나머지는 {$mod}이다.");
?>

 

우리가 만들 페이지는 보통 이런 식으로 form을 사용해, 나누어서 사용이 됩니다.