R/hello.R

#' 
#' #' update_serverlist
#' #' @export
#' update_serverlist <- function(){
#'   library(dplyr)
#' 
#'   serverlist <- readLines("https://vpn.hidemyass.com/vpn-config/l2tp/") %>%
#'       stringr::str_split("\t", simplify = T) %>%
#'       dplyr::as_data_frame()
#'   names(serverlist) <- c("ip", "name")
#'   save(serverlist, file="data/serverlist.rda")
#' }
#' 
#' #' get_serverlist
#' #' @export
#' get_serverlist <- function(){
#'   load("data/serverlist.rda")
#'   return(serverlist$name)
#' }
#' 
#' #' get_ip_server
#' #' @export
#' get_ip_server <- function(servername){
#'   load("data/serverlist.rda")
#' 
#'   serverip <- serverlist %>%
#'     filter(name == servername) %>%
#'     select(ip) %>%
#'     as.character
#' 
#'   return(serverip)
#' }
#' 
#' #' get_current_ip
#' #' @export
#' get_current_ip <- function(){
#'   ip <- xml2::read_html("http://geoip.hmageo.com/ip/") %>% rvest::html_text()
#' 
#'   return(ip)
#' }
#' 
#' 
#' #' lgin_data
#' #' @export
#' login_data <- function(){
#' user <- "bguinaudeau"
#' password <- "KYP-QUZ-a8p-vdN"
#' write(paste0(user, "\n", password), file = "/tmp/password.txt")
#' }
#' 
#' #' get_config
#' #' @export
#' get_config <- function(serverip, proto = "udp"){
#' 
#'   template <- "client
#'    dev tun
#'   resolv-retry infinite
#'   nobind
#'   persist-key
#'   persist-tun
#'   auth-user-pass
#'   tun-mtu 1500
#'   tun-mtu-extra 32
#'   mssfix 1450
#'   ns-cert-type server
#' 
#'   verb 2
#'   cipher AES-256-CBC
#' 
#'   comp-lzo yes
#'   comp-noadapt
#' 
#'   <ca>
#'   -----BEGIN CERTIFICATE-----
#'   MIIGVjCCBD6gAwIBAgIJAOmTY3hf1Bb6MA0GCSqGSIb3DQEBCwUAMIGSMQswCQYD
#'   VQQGEwJVSzEPMA0GA1UECAwGTG9uZG9uMQ8wDQYDVQQHDAZMb25kb24xEzARBgNV
#'   BAoMClByaXZheCBMdGQxFDASBgNVBAsMC0hNQSBQcm8gVlBOMRYwFAYDVQQDDA1o
#'   aWRlbXlhc3MuY29tMR4wHAYJKoZIhvcNAQkBFg9pbmZvQHByaXZheC5jb20wHhcN
#'   MTYwOTE0MDk0MTUyWhcNMjYwOTEyMDk0MTUyWjCBkjELMAkGA1UEBhMCVUsxDzAN
#'   BgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMRMwEQYDVQQKDApQcml2YXgg
#'   THRkMRQwEgYDVQQLDAtITUEgUHJvIFZQTjEWMBQGA1UEAwwNaGlkZW15YXNzLmNv
#'   bTEeMBwGCSqGSIb3DQEJARYPaW5mb0Bwcml2YXguY29tMIICIjANBgkqhkiG9w0B
#'   AQEFAAOCAg8AMIICCgKCAgEAxWS4+bOnwzGsEZ2vyqfTg7OEJkdqlA+DmQB3UmeD
#'   xX8K+87FTe/htIudr4hQ19q2gaHU4PjN1QsJtkH+VxU6V5p5eeWVVCGpHOhkcI4X
#'   K0yodRGn6rhAPJYXI7pJHAronfmqfZz/XM+neTGHQ9VF9zW6Q1001mjT0YklFfpx
#'   +CPFiGYsQjqZ+ia9RvaXz5Eu1cQ0EWy4do1l7obmvmTrlqN26z4unmh3HfEKRuwt
#'   NeHsSyhdzFW20eT2GhvXniHItqWBDi93U55R84y2GNrQubm207UB6kqbJXPXYnlZ
#'   ifvQCxa1hz3sr+vUbRi4wIpj/Da2MK7BLHAuUbClKqFs9OSAffWo/PuhkhFyF5Jh
#'   OYXjOMI1PhiTjeSfBmNdC5dFOGT3rStvYxYlB8rwuuyp9DuvInQRuCC62/Lew9pI
#'   TULaPUPTU7TeKuk4Hqqn2LtnFTU7CSMRAVgZMxTWuC7PT+9sy+jM3nSqo+QaiVtM
#'   xbaWXmZD9UlLEMmM9IkMdHV08DXQonjIi4RnqHWLYRY6pDjJ2E4jleXlS2laIBKl
#'   mKIuyxZ/B5IyV2dLKrNAs7j9EC7J82giBBCHbZiHQjZ2CqIi+afHKjniFHhuJSVU
#'   e7DY+S/B/ePac7Xha8a5K2LmJ+jpPjvBjJd+2Tp2Eyt8wVn/6iSqKePDny5AZhbY
#'   +YkCAwEAAaOBrDCBqTAdBgNVHQ4EFgQU4MZR0iTa8SoTWOJeoOmtynuk8/cwHwYD
#'   VR0jBBgwFoAU4MZR0iTa8SoTWOJeoOmtynuk8/cwDwYDVR0TAQH/BAUwAwEB/zAL
#'   BgNVHQ8EBAMCAaYwEQYJYIZIAYb4QgEBBAQDAgEWMBoGA1UdEQQTMBGBD2luZm9A
#'   cHJpdmF4LmNvbTAaBgNVHRIEEzARgQ9pbmZvQHByaXZheC5jb20wDQYJKoZIhvcN
#'   AQELBQADggIBAG+QvRLNs41wHXeM7wq6tqSZl6UFStGc6gIzzVUkysVHwvAqqxj/
#'   8UncqEwFTxV3KiD/+wLMHZFkLwQgSAHwaTmBKGrK4I6DoUtK+52RwfyU3XA0s5dj
#'   6rKbZKPNdD0jusOTYgbXOCUa6JI2gmpyjk7lq3D66dATs11uP7S2uwjuO3ER5Czt
#'   m12RcsrAxjndH2igTgZVu4QQwnNZ39Raq6v5IayKxF0tP1wPxz/JafhIjdNxq6Re
#'   P4jsI5y0rJBuXuw+gWC8ePTP4rxWp908kI7vwmmVq9/iisGZelN6G5uEB2d3EiJB
#'   B0A3t9LCFT9fKznlp/38To4x1lQhfNbln8zC4qav/8fBfKu5MkuVcdV4ZmHq0bT7
#'   sfzsgHs00JaYOCadBslNu1xVtgooy+ARiGfnzVL9bArLhlVn476JfU22H57M0IaU
#'   F5iUTJOWKMSYHNMBWL/m+rgD4In1nEb8DITBW7c1JtC8Iql0UPq1PlxhqMyvXfW9
#'   4njqcF4wQi6PsnJI9X7oHDy+pevRrCR+3R5xWB8C9jr8J80TmsRJRv8chDUOHH4H
#'   YjhF7ldJRDmvY+DK6e4jgBOIaqS5i2/PybVYWjBb7VuKDFkLQSqA5g/jELd6hpUL
#'   yUgzpAgr7q3iJghthPkS4oxw9NtNvnbQweKIF37HIHiuJRsTRO4jhlX4
#'   -----END CERTIFICATE-----
#'   </ca>
#'   <cert>
#'   -----BEGIN CERTIFICATE-----
#'   MIIGMjCCBBqgAwIBAgICAQIwDQYJKoZIhvcNAQELBQAwgZIxCzAJBgNVBAYTAlVL
#'   MQ8wDQYDVQQIDAZMb25kb24xDzANBgNVBAcMBkxvbmRvbjETMBEGA1UECgwKUHJp
#'   dmF4IEx0ZDEUMBIGA1UECwwLSE1BIFBybyBWUE4xFjAUBgNVBAMMDWhpZGVteWFz
#'   cy5jb20xHjAcBgkqhkiG9w0BCQEWD2luZm9AcHJpdmF4LmNvbTAeFw0xNjEwMTgx
#'   NDE4MThaFw0yNjEwMTUxNDE4MThaMIGNMQswCQYDVQQGEwJVSzEPMA0GA1UECAwG
#'   TG9uZG9uMQ8wDQYDVQQHDAZMb25kb24xEzARBgNVBAoMClByaXZheCBMdGQxFDAS
#'   BgNVBAsMC0hNQSBQcm8gVlBOMREwDwYDVQQDDAhobWF1c2VyMjEeMBwGCSqGSIb3
#'   DQEJARYPaW5mb0Bwcml2YXguY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
#'   CgKCAQEA5XY3ERJYWs/YIeBoybivNlu+M32rJs+CAZsh7BnnetTxytI4ngsMRoqX
#'   ETuis8udp2hsqEHsglLR9tlk9C8yCuKhxbkpdrXFWdISmUq5sa7/wqg/zJF1AZm5
#'   Jy0oHNyTHfG6XW61I/h9IN5dmcR9YLir8DVDBNllbtt0z+DnvOhYJOqC30ENahWk
#'   TmNKl1cT7EBrR5slddiBJleAb08z77pwsD310e6jWTBySsBcPy+xu/Jj2QgVil/3
#'   mstZZDI+noFzs3SkTFBkha/lNTP7NODBQ6m39iaJxz6ZR1xE3v7XU0H5WnpZIcQ2
#'   +kmu5Krk2y1GYMKL+9oaotXFPz9v+QIDAQABo4IBkzCCAY8wCQYDVR0TBAIwADAR
#'   BglghkgBhvhCAQEEBAMCB4AwCwYDVR0PBAQDAgeAMCwGCWCGSAGG+EIBDQQfFh1P
#'   cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU2LKFPHjFUzLf
#'   sHIMWi0VukhBgTEwgccGA1UdIwSBvzCBvIAU4MZR0iTa8SoTWOJeoOmtynuk8/eh
#'   gZikgZUwgZIxCzAJBgNVBAYTAlVLMQ8wDQYDVQQIDAZMb25kb24xDzANBgNVBAcM
#'   BkxvbmRvbjETMBEGA1UECgwKUHJpdmF4IEx0ZDEUMBIGA1UECwwLSE1BIFBybyBW
#'   UE4xFjAUBgNVBAMMDWhpZGVteWFzcy5jb20xHjAcBgkqhkiG9w0BCQEWD2luZm9A
#'   cHJpdmF4LmNvbYIJAOmTY3hf1Bb6MBoGA1UdEQQTMBGBD2luZm9AcHJpdmF4LmNv
#'   bTAaBgNVHRIEEzARgQ9pbmZvQHByaXZheC5jb20wEwYDVR0lBAwwCgYIKwYBBQUH
#'   AwIwDQYJKoZIhvcNAQELBQADggIBAKeGVnbL3yu2fh1T0ATbgyHx9rnFGRW1o/xf
#'   F5ssfRInlopsGDejrk9goyJErVxuzSzLp8AhxSOrVZJp6Tlpssj3B4FbGB0BIH+L
#'   crID9pb+r2LqrTeYfMwYo6zRLNQ5NmMyxQCf6XrdxihUTiZBV31LKlWNkhOLMlHr
#'   2eXwAEXjqYMXjYwN+WE8I7SlUm5WCwj7PTiF7BpdDP5Ut4y5Dj8A2m1zXt36rr5h
#'   xvbgo2JAeFwVEG4ch67PI+uM0G2GilxnjuK2wKgjBKFMAUfLs7tigzSgx8PEfYCc
#'   +bgWpPyfG5hYM9n94zd2VTDN4sam12Bxvhw8zn20L6eT+Skfa8BN7eesrV5opABt
#'   /IImZ4Q1HShKKc5EiBN8CKGDydojkNrXuFfsyv7S9VHch0e5cS+Annhr4ARaH0O5
#'   fPOD5PBVajdbV6/Rf7NzB5b/raJcUK5BD6KWWRCsmaNYzaabJjUpCmigrOMmkdAx
#'   eKCY/oEFpU3+7VeKfNyxBTIiGFt5RjNqTQXmMVjiRN97VN7fqAaFTQB2OF7E3hrt
#'   qU9jXkeN8Tvu/FF0LNyt87orewecC0Ujz7Hto9fchPH0roP+DVzoAEP8axD9RV5p
#'   M/kgubu3hMD6lLsbx4GOD11GQplvuygURxAYsyjbgFydbk1ZIpeE2OeGXXrfuQWF
#'   bNtjLJTu
#'   -----END CERTIFICATE-----
#'   </cert>
#'   <key>
#'   -----BEGIN RSA PRIVATE KEY-----
#'   MIIEpAIBAAKCAQEA5XY3ERJYWs/YIeBoybivNlu+M32rJs+CAZsh7BnnetTxytI4
#'   ngsMRoqXETuis8udp2hsqEHsglLR9tlk9C8yCuKhxbkpdrXFWdISmUq5sa7/wqg/
#'   zJF1AZm5Jy0oHNyTHfG6XW61I/h9IN5dmcR9YLir8DVDBNllbtt0z+DnvOhYJOqC
#'   30ENahWkTmNKl1cT7EBrR5slddiBJleAb08z77pwsD310e6jWTBySsBcPy+xu/Jj
#'   2QgVil/3mstZZDI+noFzs3SkTFBkha/lNTP7NODBQ6m39iaJxz6ZR1xE3v7XU0H5
#'   WnpZIcQ2+kmu5Krk2y1GYMKL+9oaotXFPz9v+QIDAQABAoIBAQCcMcssOMOiFWc3
#'   MC3EWo4SP4MKQ9n0Uj5Z34LI151FdJyehlj54+VYQ1Cv71tCbjED2sZUBoP69mts
#'   T/EzcsjqtfiOwgrifrs2+BOm+0HKHKiGlcbP9peiHkT10PxEITWXpYtJvGlbcfOj
#'   Ixqt6B28cBjCK09ShrVQL9ylAKBearRRUacszppntMNTMtN/uG48ZR9Wm+xAczIm
#'   dG6CrG5sLI/++JwM5PDChLvn5JgMGyOfQZdjNe1oSOVLmqFeG5uu/FS4oMon9+Ht
#'   fjHJr4ZgA1yQ2wQh3GvEjlP8zwHxEpRJYbxpj6ZbjHZJ2HLX/Gcd9/cXiN8+fQ2z
#'   PIYQyG9dAoGBAPUUmt2nJNvl7gj0GbZZ3XR9o+hvj7bJ74W2NhMrw6kjrrzHTAUQ
#'   d1sBQS8szAQCLqf2ou1aw9AMMBdsLAHydXxvbH7IBAla7rKr23iethtSfjhTNSgQ
#'   LJHVZlNHfp3hzNtCQZ7j0qVjrteNotrdVF7kKPHDXAK00ICy6SPNjvrXAoGBAO+v
#'   dnO15jLeZbbi3lQNS4r8oCadyqyX7ouKE6MtKNhiPsNPGqHKiGcKs/+QylVgYvSm
#'   m7TgpsCAiEYeLSPT+Yq3y7HtwVpULlpfAhEJXmvn/6hGpOizx1WNGWhw7nHPWPDz
#'   f+jqCGzHdhK0aEZR3MZZQ+U+uKfGiJ8vrvgB7eGvAoGAWxxp5nU48rcsIw/8bxpB
#'   hgkfYk33M5EnBqKSv9XJS5wEXhIJZOiWNrLktNEGl4boKXE7aNoRacreJhcE1UR6
#'   AOS7hPZ+6atwiePyF4mJUeb9HZtxa493wk9/Vv6BR9il++1Jz/QKX4oLef8hyBP4
#'   Rb60qgxirG7kBLR+j9zfhskCgYEAzA5y5xIeuIIU0H4XUDG9dcebxSSjbwsuYIge
#'   Ldb9pjMGQhsvjjyyoh8/nT20tLkJpkXN3FFCRjNnUWLRhWYrVkkh1wqWiYOPrwqh
#'   5MU4KN/sDWSPcznTY+drkTpMFoKzsvdrl2zf3VR3FneXKv742bkXj601Ykko+XWM
#'   HcLutisCgYBSq8IrsjzfaTQiTGI9a7WWsvzK92bq7Abnfq7swAXWcJd/bnjTQKLr
#'   rvt2bmwNvlWKAb3c69BFMn0X4t4PuN0iJQ39D6aQAEaM7HwWAmjf5TbodbmgbGxd
#'   sUB4xcCIQQ1mvTkigXWrCg0YAD2GZSoaslXAAVv6nR5qWEIa0Hx9GA==
#'   -----END RSA PRIVATE KEY-----
#'   </key>"
#' 
#'   port <- ifelse(proto == "udp", "553", "443")
#' 
#'   write(paste0(template, "\nproto ", proto,"\nremote ", serverip, " ",port,
#'                "\nauth-user-pass /tmp/password.txt\n"),
#'         file = "/tmp/config.ovpn")
#' }
#' 
#' 
#' #' connect_vpn
#' #' @export
#' connect_vpn <- function(){
#'   path <- getwd()
#'   system(paste0("cd ", getwd(), "&& sudo sh ./hma-openvpn_perso_mac.sh >> /tmp/log.txt"), wait = F)
#' 
#'   Sys.sleep(5)
#'   k <- 1
#'   connected <- F
#' 
#'   while(!connected & k < 45){
#' 
#'     test <-  readLines("/tmp/log.txt") %>%
#'       .[length(.)]
#'     print(test)
#' 
#'     connected <- readLines("/tmp/log.txt") %>%
#'       .[length(.)] %>%
#'       stringr::str_detect(pattern = "Initialization Sequence Complete")
#' 
#'     k <- k +1
#'     Sys.sleep(1)
#'   }
#' 
#'   serverip <- get_current_ip()
#' 
#'   if(!connected){
#'     system("sudo killall openvpn")
#'     cat("Connection was unsucessful")
#'   } else {
#'     cat(paste0("Successfully connected to ", serverip))
#'   }
#' }
#' 
#' #' close_vpn
#' #' @export
#' close_vpn <- function(){
#'   system("sudo killall openvpn")
#' }
#' 
#' 
#' 
#' # Hello, world!
#' #
#' # This is an example function named 'hello'
#' # which prints 'Hello, world!'.
#' #
#' # You can learn more about package authoring with RStudio at:
#' #
#' #   http://r-pkgs.had.co.nz/
#' #
#' # Some useful keyboard shortcuts for package authoring:
#' #
#' #   Build and Reload Package:  'Cmd + Shift + B'
#' #   Check Package:             'Cmd + Shift + E'
#' #   Test Package:              'Cmd + Shift + T'
#' 
#' close_vpn()
#' 
#' update_serverlist()
#' login_data()
#' 
#' get_serverlist() %>%
#'   .[15] %>%
#'   get_ip_server() %>%
#'   get_config
#' 
#' connect_vpn()
#' get_current_ip()
benjaminguinaudeau/hideR documentation built on Dec. 27, 2019, 3:38 a.m.