일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 1697
- semanage
- 백준
- linux시간으로 변경
- 정규식 활용
- centos pyhon 설치
- telegraf
- gcc 업데이트
- python popen
- grafana dashboard
- c3 초
- 정규식 문자열 출력
- python os
- selinux port 등록
- gcc regex
- snmp
- subporcess path
- c3 축 없애기
- regex_search
- c3 step graph
- snmp test
- influxdb 설치
- c3 second
- c++ 정규식
- CentOS7
- python subprocess
- g++ 업데이트
- c3 축 가리기
- InfluxDB
- 정규식 컴파일
- Today
- Total
목록전체 글 (560)
리셋 되지 말자
client.html server.py import socket import sys import re import hashlib import base64 import threading import struct import subprocess import os def send(client, msg): print('\n' + '\x81' + '\n') data = bytearray(msg.encode('utf-8')) if len(data) > 126: data = bytearray([129, 126]) + bytearray(struct.pack('>H', len(data))) + data else: data = bytearray([129, len(data)]) + data client.send(data) ..
우분투 최신버전으로 가면서, 우분투 설치 시 계정이름을 알파벳 대문자로 못 만든다... 대문자로 만들려면 일단, 접속한 후에 terminal에서 대문자 알파벳으로 생성할 수 있다. 그런데 생성하는데 너무 고생해서 글을 남긴다... $ sudo useradd OpenSW -m -s /bin/bash $ sudo passwd OpenSW 위처럼 계정을 생성하고, 비밀번호를 설정해준다. useradd로 생성해주면, /home/ 디렉토리에 자동으로 계정에 대한 디렉토리가 생성된다. adduser는 대문자로 시작하는 계정 생성이 불가능했다. (이것때문에 고생함)
3-2 주소정보의 표현 IPv4 기반의 주소표현을 위한 구조체 주소정보를 담을 때에는 주소체계, IP주소, PORT번호가 필요하다. 이를 위해 아래와 같은 구조체가 정의되어 있다. (bind함수에 주소정보를 전달하는 용도로 사용된다.) struct sockaddr_in{ sa_family_t sin_family; // 주소체계 uint16_t sin_port; // 16비트 TCP/UDP PORT번호 struct in_addr sin_addr; // 32비트 IP주소 char sin_zero[8]; // 사용되지 않음 };struct in_addr{ in_addr_t s_addr; //32비트 IPv4 인터넷 주소 };
Ch3 주소체계와 데이터 정렬 3-1 소켓에 할당되는 IP주소와 PORT번호 IP는 Internet Protocol의 약자로 인터넷상에서 '데이터를 송수신할 목적으로 컴퓨터에게부여하는 값'을 의미한다. PORT번호는 컴퓨터에게 부여하는 값이 아닌, '프로그램상에서 생성되는 소켓을 구분하기 위해 소켓에 부여되는 번호'를 뜻한다. 인터넷 주소 인터넷에 컴퓨터를 연결하여 데이터를 주고받기 위해서 IP주소를 부여 받아야 하는데, 두 가지 종류가 있다. - IPv4(Internet Protocol version 4) : 4바이트 주소체계 (가장 보편적으로 널리 쓰임) - IPv6(Internet Protocol version 6 : 16바이트 주소체계 (IP주소 고갈을 염려하여 만들었는데, 아직 잘 안쓰임) IP..
프로토콜(Protocol)이란 무엇인가? 대화에 필요한 통신 규약을 의미한다. 즉, 컴퓨터의 관점에서 "컴퓨터 상호간의 대화에 필요한 통신규약" 이라고 할 수 있다. 소켓의 생성(복습) int socket(int domain, int type, int protocol); domain : 소켓이 사용할 프로토콜 체계(Protocol Family) 정보 전달 type : 소켓의 데이터 전송방식에 대한 정보 전달 protocol : 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달 프로토콜 체계(Protocol Family) - 헤더파일 sys/socket.h에 선언되어 있음 PF_INET : IPv4 인터넷 프로토콜 체계(가장 보편화되고 많이 쓰임) PF_INET6 : IPv6 인터넷 프로토콜 체계 PF_LO..
1. 프로토콜이란 무엇을 의미하는가? 그리고 데이터의 송수신에 있어서 프로토콜을 정의한다는 것은 어떠한 의미가 있는가? 프로토콜이란 컴퓨터 상호간의 대화에 필요한 통신규약이다. 프로토콜을 정의한다는 것은 대화 방법을 정하는 것이다. 2. 연결지향형 소켓인 TCP 소켓(SOCK_STREAM)의 전송 특성 세가지를 나열하여라. 중간에 데이터가 소멸되지 않고 목적지로 전송된다. 전송 순서대로 데이터가 수신된다. 전송되는 데이터의 경계(Boundary)가 존재하지 않는다. 3. 다음 중 비 연결지향형 소켓(SOCK_DGRAM)의 특성에 해당하는 것을 모두 고르면? a. 전송된 데이터는 손실될 수 있다. O b. 데이터의 경게(Boundary)가 존재하지 않는다. X c. 가장 빠른 전송을 목표로 한다. O d...
tcp_client.c (linux에서 동작) #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char *argv[]){ int sock; struct sockaddr_in serv_addr; char message[30]; int str_len=0; int idx=0, read_len=0; if(argc!=3){ printf("Usage : %s \n", argv[0]); exit(1); } sock = socket(PF_INET, SOCK_STREAM, 0); if(sock == -1) error_handling("socket() error"); memse..
def handshake(client): request = client.recv(2048) p=re.compile('Sec-WebSocket-Key: (.*)\\r') m = p.search(request.decode()) #key = m.group(1)+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11' key = 'dGhlIHNhbXBsZSBub25jZQ=='+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11' h=hashlib.sha1() h.update(key.encode()) #sh1_key = hashlib.sha1().digest() base64_key = base64.b64encode(h.diges..