pwnable.kr coin1

# coding: utf-8
from socket import*

import random
import time

HOST = '0.0.0.0'

PORT = 9007

# 建立socket对象

client = socket(AF_INET, SOCK_STREAM)

# AF_INET表示将使用标准的ipv4地址或主机名

# SOCK_STREAM说明这是一个TCP客户端


client.connect((HOST, PORT))  # 连接

data = client.recv(1024)  # 接收数据

time.sleep(4)

for i in xrange(100):

    data = client.recv(1024)

    int_N = data.find("N=") + 2

    int_C = data.find("C=") + 2

    N = data[int_N]

    C = data[int_C]

    while data[int_N + 1] != ' ':

        N = N + data[int_N + 1]

        int_N = int_N + 1

    while data[int_C + 1] >= '0'and data[int_C + 1] <= '9':

        C = C + data[int_C + 1]

        int_C = int_C + 1

    n = int(N)

    c = int(C)

    print "get N=", n, "C=", c

    left = 0

    right = n - 1

    mid = (left + right) / 2

    for i in range(c):
        # for n in range(left, mid + 1):
        #     token[n] = str(n)
        token = [str(n) for n in xrange(left, mid + 1)]
        token = " ".join(token)
        client.send(token + "\n")
        data = client.recv(5)
        weights = data[0]
        pos = 1
        while data[pos] <= '9'and data[pos] >= '0':
            weights = weights + data[pos]
            pos += 1

        weight = int(weights)
        if weight == (mid - left + 1) * 10:
            left = mid + 1
        else:
            right = mid
        mid = (left + right) / 2

    client.send(str(left) + "\n")

    ans = client.recv(1024)
    print "ans: ", ans
data = client.recv(1024)
print data
client.close()

print 'received', repr(data)

第一次写Python脚本,虽然好多不会是照抄的,还是记录一下,方便以后查找

多了不说,可以参考这篇文章

http://blog.csdn.net/pwd_3/article/details/51056996

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值