Transcrição do áudio
E é comum sem você baixar coisas, amigo. Baixar coisas, por exemplo, de uma outra máquina, na sua rede, na internet, usando um protocolo chamado HTTP. E, naturalmente, HTTPS. Bom, então nós temos dois comandos para isso. Um comando vulgarmente chamado de CUR, o CUR, sei lá como a galera chama, mas o nome correto se chama CURL. C de C, em linguagem C. E você tem o WGET, que é um outro comandinho muito bacana. É mais comum você ter o WGET depois o CUR e eu não tenho nenhum dos dois nessa máquina. Puta que pariu, que o hubs do capita. Deixa eu ver se eu instalei. O que que eu faço? Eu já deixo o script pronto, sempre que eu inicializo essa bosta desse meu Linux. Então realmente eu tenho o WGET instalado, o CUR, o WGET está nesse Linux. Então sempre que eu rolo esse Linux, lembro que eu te falei que ele esquece. Eu já deixo tudo pronto que eu quero que ele roda quando ele inicializa. Então é como eu faço. Então o WGET e o CUR você instale desse jeito. Apenas tem install, tal, tal, tal, tal. Você já utilizou isso no curso capítulo 1, você fez um WGET, traçou a maiúsculo, baixou esse arquivo. Não, isso foi na aula de partição, particionamento. Você baixou o ISO e fez a montagem do ISO. Assim como você também baixou o STAO, instalação do IED.com.br, você baixou. A instalação do meu instalador, do IED, do comando IED, o WGET mostra que o dos dentro, o protocolo HTTP tem status, exemplo, 404. Todo mundo conhece, o cara não achou. 404 significa que não achou. 500 erro interno, tem várias variações do cliente. 400, acesso. 300, algum redirecionamento, alguma coisa que o server manda fazer. Então você tem o status quo, tem uma tabela gigantesca na internet. Como eu não paguei internet, eu to sem internet pra acessar. Você acha isso tudo na internet. Ajuda o professor, compra o curso, dá um like no curso, manda o link do curso pros coleguinhos que tem dinheiro, pô, não paguei internet. Aqui, 200, ok, viria aqui o status. Já o seu RL, ele tem um porcentagem, ele é muito mais bacaninha, é muito mais top. Você basta usar o Curse, seu RL. Bom, o seu RL às vezes é melhor do que o WGET pra questão de TLS e SSL. Principalmente quando o SSL já passou a data, o SSL é auto assinado, o seu RL é mais resiliente a falhas de certificado. Então é por isso que eu gosto bastante do seu RL. Bom caso você decide fazer o seu próprio GET seu arquivo, então como você utilizou no WGET, aqui eu utilizei no Curse, seu RL. Olha como você quer ser seu próprio programa. Você puxa do pacote seu RL a biblioteca seu RL, incorpora no teu código. E aí você cria aqui o caminho provavelmente, aqui é o caminho, RL, e você vai criar uma variável, chamado seu RL, o objeto, vamos colocar assim. Você pega aqui o RL, e então você guarda aqui um char, um array de char, porque eu sou um trabalho em C, tá galera? Isso aqui é C. Repare, nós somos em C, não estamos em C mais mais. Não existe string aqui na história. É tudo array de char, é tudo ponteiro, tudo assim. Então você pega o Curse e inicializa o seu RL. Se conseguiu inicializar com sucesso, você abre um arquivo de Output para escrever. Você abre no modo escrita binária. Quem programa a Python vai falar assim, esse é Python porra. Quem programa a PHP vai falar assim, esse é PHP porra. Então vou falar. Quem fez PHP e quem fez o Python, ou seja, o programa, então não foi você não. O cara que fez a linguagem, eles são apaixonados por ser mais mais. Entende? Então você vai encontrar muita coisa semelhante para você que aprendeu Python em C, cara. Você vai falar assim, porra, mas isso aqui é Python. Não, não, não, não. O Python que é isso aqui, entendeu? E aí ele vai abrir o arquivo, então ele vai passar o RL, ele vai colocar aquele tipo de escrita. Ele vai passar o performa do Curse, o seu RL, e aí ele vai limpar. Aqui repare que quando você pega o Fp e você passa ele pro White Tata, dentro do seu RL, você já tem uma função interna que preenche o arquivo, né? E aí você mata o seu RL, limpa o seu RL e você fecha o arquivo. Então o arquivo se materializa no disco, entendeu? Nesse caminho aqui, nesse UI, né? Você sabe que uma URL é uma UI. Um perf de diretório é uma UI. Legal, provavelmente você já viu isso lá no caminho do seu browser. Beleza? Só que na hora de você complicar com G++ ou com GCC, você tem que lembrar de adicionar a biblioteca L, RL, que é o LibCur. Então você executa o seu programa, você vai ver que esse seu programa vai fazer o download de um arquivo binário igual aos dois comuns que você aprendeu aqui. Aí eu te pergunto, cara, é difícil aprender a programar? É difícil? Você sabe quando é difícil você aprender a programar? Quando você inventa de fazer um programa gigantesco sem saber programar? Você começa a aprender a fazer routine as pequenas, você aprende o programa. É natural. Aqui é um post, aqui foi um get. Então como assim? O protocolo HTTP tem os métodos. É chamado também de verbos. Get, post, put, delete. Então você tem os métodos. Então isso aqui foi um get. O que é um get é pegar. Aqui é um put, alterar. Cadê? Cara, esse cachorro aqui é barulhinho dessas porras. O post, tá vendo aqui? O método, o verbo. Você tem livro que te fala medo, tem livro que fala verbo. Então você tá naturalmente só criando, aqui já é um C mais mais. Aqui é um C puro, você poderia compilar um GCC, não precisaria nem do G mais mais. O G mais mais ele compila em C e C mais mais. Aqui eu já partiria, aqui já é um C mais mais, porque ele já tá puxando o string. Eu fui retardado lá ao colocar CPP, eu fui retardado por colocar só C aqui. Aqui eu reparo que eu tô puxando string, já tô criando um JSON aqui básico. Já tô criando aqui também a questão do content type, do cabeçalho, do CUR. Daria pra colocar o zeragente, daria pra você fazer, colocar os X alguma coisa. Como assim? O content type é do protocolo HTTP, content length, o encoding são padrões. X traço ASPX significa que é padrão da tecnologia, o X traço PHP verso Laravel alguma coisa. Então você poderia trabalhar no header do cabeçalho do HTTP, a inicializar o CUR. Aqui ele tá fazendo o quê? Ele tá jogando no E comeu, filha da puta. Eu tô fazendo o E se me empurra. Aí progresso, aí eu tô mandando o JSON como um string, como um string, como um array de RAR. Porque C não tem, né? Então eu tô colocando a versão do CUR, aqui você poderia colocar o Mozilla, a versão tal, tal, tal, tal, fingindo que é um browser. E você pega como post, então você pega esse cara que executa, joga pra lá, executa o performat, executa, limpa, acabou. Esse aqui é o seu retorno, que seria o que retornaria esse arquivo PHP aqui. Beleza? Bom cara, isso aqui não é pra qualquer um que eu vou mostrar não, vou mostrar pra vocês. Você sabia que um download pode ser parado e continuar da manhã? Bom, mas não é assim, né? Eu começo a fazer download, meu browser deu paro e eu começo de novo e eu me ferro. Ainda mais se eu desligar a máquina, e se o outro lado desligar o servidor e ligar no outro dia? Vou dar pra continuar, tá? Eu vou ensinar pra vocês agora a fazer um download persistente. Ele é muito útil pra você fazer download em redes como a Darknet, essas coisas, tá? Por isso que eu não ensino isso pra qualquer um. Eu imagino que eu fiz um arquivo, tá? Chama lá em downloads, eu chamei esse arquivo de urls.txt, e aqui você põe, linha por linha, tudo que você quer baixar, pela web, pela idospesa, e lá, porque diabo você tá, tá? Bom, olha que interessante, você vai fazer um iotool nesse arquivo, tá? Você tá injetando esse arquivo no iotool, tá vendo aqui, ó? No capítulo 12, eu vou ensinar pra vocês, na verdade, capítulo 11, vou ensinar pra vocês, a como você trabalha com essa linguagem chamada best, tá? Eu tô lendo um arquivo chamado urls.txt e tô injetando no iol, cara. É sério, repara, é comum você ler e jogar aqui dentro do iol, assim? Aqui não, cara, nessa linguagem diferente. Você consegue pegar isso aqui e injetar, não, desculpa, deu a quebra aqui, eu achei que tava injetando no iol. Desculpa, desculpa. Você consegue também, tá? Você consegue ler um arquivo e injetar no arço de repetição, aqui no caso, não tá injetando no arço de repetição, tá? Aqui tá injetando no xargs. O xargs, que é um arço de repetição, também. Ele vai rodar isso aqui. O que faz isso aqui? Isso aqui, usando a rede Tor, dentro de um diretório downloads, dando retrai, 9999999999, que é o número 9 pra caralho, grande, pra boa. De forma muito persistente. ele tem um retrai, cai a conexão, tenta um retrai, ele fica aqui eternamente. E se eu de ligar meu computador e ligar amanhã, ele vai ligar nesse script retrai, retrai, entendeu? Ele vai continuar de onde parou com uma diferença de 1 megabyte. O cara é persistente, então o outro lado pode desligar, quando ele ligar vai continuar. Você pode desligar quando você roda esse script, vai continuar onde parou. Então ele vai fazendo aqui esse retrai, retrai, é aquele exemplo de um download bem gigantesco dentro da rede Tor. Se não falha a memória, esse arquivo tinha 495 GB pela rede Tor. Quem já viu a rede Tor, a velocidade pode me falar quanto é lenta essa bossa. 495 GB foi feito no download, demora um mês e pouco, pelo que me lembro, está o download. Só para você ter uma noção do quanto é importante você saber dessas coisas. Como é importante você ler e tudo mais, nada destrava a sua vida. A sua vida nunca entrava, nunca tem problema. Esse script foi o que fiz. Eu pude ver esse script aí, porque eu precisava estar usando baixar esse arquivo na app. Que desgraçado. Próxima aula. Você tem que fazer essas práticas no capítulo 10. Até mais. Tchau.