python Simple을 실행할 수 있는가?로컬 호스트에서만 HTTPServer를 사용하시겠습니까?
vpn 연결이 있고 python -m Simple을 실행할 때HTTPServer, 0.0.0.0:8000에서 서비스를 제공하므로 localhost와 my real ip를 통해 액세스할 수 있다.나는 로봇이 나를 스캔하는 것을 원하지 않고 서버가 로컬호스트를 통해서만 접속되는 것에 관심이 있다.
가능합니까?
python -m SimpleHTTPServer 127.0.0.1:8000 # doesn't work.
명령줄을 사용하여 즉시 실행될 수 있는 다른 간단한 http 서버도 환영한다.
Python 버전 3.4 이상에서는http.server
모듈이 a를 승인하다.bind
매개 변수
python -m http.server 8000
기본적으로 서버는 모든 인터페이스에 바인딩된다.-b/--bind 옵션은 바인딩할 특정 주소를 지정한다.예를 들어, 다음 명령으로 인해 서버는 로컬 호스트에만 바인딩된다.
python -m http.server 8000 --bind 127.0.0.1
새로운 버전 3.4: --bind 논거가 도입되었다.
@sberry가 설명했듯이, 단순히 nice를 사용해서 하는 것이다.python -m ...
IP 주소의 구현에 하드 코딩이 되어 있기 때문에 메서드는 불가능할 것이다.BaseHttpServer.test
기능을 발휘하다
코드부터 파일에 쓰지 않고 명령행에서 먼저 하는 방법은
python -c 'import BaseHTTPServer as bhs, SimpleHTTPServer as shs; bhs.HTTPServer(("127.0.0.1", 8888), shs.SimpleHTTPRequestHandler).serve_forever()'
만약 그것이 여전히 하나의 라이너로 계산된다면 ;-) 확실히 기억하기가 쉽지 않다.
소스를 읽으면 명령줄에서 포트만 재정의할 수 있음을 알 수 있다.서비스가 제공되는 호스트를 변경하려면test()
의 방법.SimpleHTTPServer
그리고BaseHTTPServer
네 자신.하지만 그건 정말 쉬울 거야.
다음과 같이 쉽게 할 수 있다.
import sys
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer
def test(HandlerClass=SimpleHTTPRequestHandler,
ServerClass=BaseHTTPServer.HTTPServer):
protocol = "HTTP/1.0"
host = ''
port = 8000
if len(sys.argv) > 1:
arg = sys.argv[1]
if ':' in arg:
host, port = arg.split(':')
port = int(port)
else:
try:
port = int(sys.argv[1])
except:
host = sys.argv[1]
server_address = (host, port)
HandlerClass.protocol_version = protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
if __name__ == "__main__":
test()
그리고 이를 사용하려면:
> python server.py 127.0.0.1
Serving HTTP on 127.0.0.1 port 8000 ...
> python server.py 127.0.0.1:9000
Serving HTTP on 127.0.0.1 port 9000 ...
> python server.py 8080
Serving HTTP on 0.0.0.0 port 8080 ...
'IT이야기' 카테고리의 다른 글
해저 플롯이 표시되지 않음 (0) | 2022.04.01 |
---|---|
v-data-table에 클릭 이벤트를 추가하는 방법 (0) | 2022.04.01 |
순차적으로 관찰 가능성과 하나의 결과 도출 (0) | 2022.04.01 |
Vue.js - 루트 요소가 v-for를 가질 수 없고 분할 래퍼가 필요한 이유 (0) | 2022.04.01 |
Python에서 XPath를 사용하는 방법? (0) | 2022.04.01 |